Dengan dukungan Cloud Run dan Eventarc, Cloud Functions for Firebase (generasi ke-2) berpotensi memberikan infrastruktur yang lebih andal, kontrol lanjutan atas performa dan skalabilitas, dan kontrol yang lebih besar atas runtime fungsi. Dokumentasi pratinjau ini menjelaskan apa saja yang baru dan yang tersedia dalam tahap pratinjau untuk generasi ke-2 ini, serta memberikan beberapa panduan tentang cara menggunakan API baru ini, baik secara terpisah maupun bersama dengan API Cloud Functions for Firebase (generasi ke-1).
Yang baru di Cloud Functions for Firebase (generasi ke-2)
Perubahan dan peningkatan yang saat ini tersedia di Cloud Functions for Firebase (generasi ke-2) meliputi:
- Instance fungsi kini dapat menjalankan lebih dari satu permintaan sekaligus.
Fitur ini tersedia untuk fungsi yang memiliki satu CPU khusus atau lebih.
Jumlah permintaan serentak dapat ditetapkan per fungsi atau di seluruh fungsi dengan metode
setGlobalOptions
. Jika tidak ditentukan, fungsi baru yang memiliki 1 CPU khusus atau lebih akan ditetapkan secara default ke 80 permintaan serentak. Lihat Mengizinkan permintaan serentak. - Amankan fungsi callable dan HTTP Anda dengan setelan
cors
baru. Pemicu HTTP kini juga memiliki setelancors
untuk menjadikan CORS lebih mudah dikelola. - Cloud Functions kini dibangun di Cloud Run. Jika Anda tidak terbiasa menggunakan Cloud Run, jangan khawatir: membangun fungsi tetap semudah sebelumnya. Cloud Run adalah produk serverless yang lebih modern yang memberikan performa lebih baik, konfigurasi lebih baik, pemantauan lebih baik, dan banyak lagi.
- Google telah berkolaborasi dengan para pemimpin industri untuk membuat spesifikasi CloudEvents. Fungsi penanganan peristiwa kini menggunakan standar terbuka ini sebagai tanda tangan peristiwa.
- Jenis pemicu baru mencakup Pemicu Firebase Alerts, pemicu peristiwa kustom untuk Firebase Extensions, dan fungsi task queue untuk menjalankan tugas yang membutuhkan banyak resource di Cloud Tasks (fungsi task queue juga tersedia di generasi ke-1).
firebase-functions
SDK telah dikonsep ulang menjadi lebih native untuk JavaScript modern. Anda dapat mengonfigurasi fungsi generasi ke-2 secara global, menggunakan objek opsi, dan menggunakan impor modular.- Fungsi HTTP kini dapat memiliki waktu tunggu 1 jam (naik dari sebelumnya 9 menit) jika diperlukan untuk beban kerja yang berjalan lama.
- Instance fungsi kini ditetapkan secara default ke akun layanan komputasi default, bukan akun layanan app engine.
Batasan selama pratinjau
Pratinjau Cloud Functions generasi ke-2 ini belum mencakup rangkaian lengkap fungsionalitas yang direncanakan, serta tidak menyediakan fitur lengkap yang setara dengan Cloud Functions (generasi ke-1). Pratinjau tersebut terbatas dalam hal pemicu yang tersedia, dan memiliki batasan lainnya untuk saat ini yang dijelaskan di bagian ini.
Pemicu Cloud Functions yang saat ini tersedia
Cloud Functions generasi ke-2 mendukung pemicu latar belakang Firebase berikut:
- Firebase Realtime Database
- Cloud Storage
- Firebase Alerts
- Pub/Sub
- Callable
- Cloud Tasks
- HTTP
- Fungsi terjadwal
- Fungsi pemblokiran Firebase Authentication
- Firebase Remote Config
- Firebase Test Lab
- Cloud Firestore
Cloud Functions generasi ke-2 saat ini tidak mendukung pemicu berikut:
onCreate
danonDelete
Firebase Authentication- Google Analytics
Batasan lainnya
Batasan ini juga berlaku untuk Cloud Functions generasi ke-2:
- Kemampuan observasi penuh belum terintegrasi dalam Firebase CLI atau Firebase console. Untuk mengamati instance fungsi Anda, gunakan Google Cloud Console untuk layanan Cloud Run yang mendasarinya.
- Firebase Local Emulator Suite saat ini mendukung fungsi HTTP, Cloud Storage, dan Pub/Sub di generasi ke-2.
- Cold start belum dioptimalkan pada generasi ke-2, dan untuk sementara mungkin jauh lebih lambat daripada generasi ke-1. Namun, pengguna akhir akan mengalami lebih sedikit cold start secara keseluruhan berkat permintaan serentak.