Halaman ini menjelaskan batas skalabel berbasis penggunaan untuk Cloud Functions berdasarkan paket harga bayar sesuai penggunaan Blaze. Batasan ini berlaku untuk project Firebase yang men-deploy fungsi di lingkungan runtime Node.js 10.
Paket Blaze menyediakan pemanggilan fungsi, waktu komputasi, dan traffic internet gratis yang melimpah. Namun, deployment fungsi akan menimbulkan sedikit biaya untuk ruang penyimpanan yang digunakan bagi container fungsi. Lihat FAQ Firebase untuk mengetahui informasi selengkapnya.
Kuota untuk Firebase mencakup 4 area:
Batas Resource
Batas ini memengaruhi jumlah total resource yang dapat digunakan oleh fungsi Anda.
Batas Waktu
Batas ini memengaruhi berapa lama operasi bisa berjalan.
Batas Kapasitas
Batas ini memengaruhi tingkat panggilan ke Firebase API untuk mengelola fungsi Anda.
Batas Jaringan
Batas ini memengaruhi batas instance dan koneksi keluar.
Jenis-jenis batas tersebut dijelaskan secara lebih mendetail di bawah ini. Perbedaan antara batas untuk Firebase (generasi ke-1) dan Firebase (generasi ke-2) dinyatakan, jika ada.
Batas Resource
Batas resource memengaruhi jumlah total resource yang dapat digunakan oleh fungsi Anda. Cakupan regional bersifat per project, dan setiap project memiliki batasnya sendiri.
Kuota | Deskripsi | Batas (generasi ke-1) | Batas (generasi ke-2) | Bisa ditingkatkan | Cakupan |
---|---|---|---|---|---|
Jumlah fungsi | Jumlah total fungsi yang dapat di-deploy per region | 1.000 | 1.000 dikurangi jumlah layanan Cloud Run yang di-deploy | Tidak | per region |
Ukuran deployment maksimum | Ukuran maksimum deployment fungsi tunggal | 100 MB (terkompresi) untuk sumber. 500 MB (tidak terkompresi) untuk sumber dan modul. |
T/A | Tidak | per fungsi |
Ukuran permintaan HTTP maksimal yang tidak dikompresi | Data yang dikirim ke fungsi HTTP dalam permintaan HTTP | 10 MB | 32 MB | Tidak | per pemanggilan |
Ukuran respons HTTP maksimal yang tidak dikompresi | Data yang dikirim dari fungsi HTTP dalam respons HTTP | 10 MB | 10 MB untuk respons streaming. 32 MB untuk respons non-streaming. |
Tidak | per pemanggilan |
Ukuran peristiwa maksimum untuk fungsi yang dipicu oleh peristiwa | Data yang dikirim dalam peristiwa ke fungsi latar belakang | 10 MB | 512 KB untuk peristiwa Eventarc. 10 MB untuk peristiwa lama. |
Tidak | per peristiwa |
Memori fungsi maks | Jumlah memori yang dapat digunakan oleh setiap instance fungsi | 8 GiB | 32 GiB | Tidak | per fungsi |
Memori project maksimum | Jumlah memori, dalam By, yang dapat digunakan oleh project. Metrik ini diukur dengan jumlah total memori yang diminta pengguna di seluruh instance fungsi selama periode 1 menit. | Bergantung pada region yang dipilih. Batas ini mungkin lebih besar di region dengan kapasitas tinggi atau lebih rendah di region yang baru dibuka. | T/A | Ya | per project dan region |
CPU project maksimum | Jumlah CPU, dalam milli vCPU, yang dapat digunakan project. Metrik ini diukur dengan jumlah total CPU yang diminta pengguna di seluruh instance fungsi selama periode 1 menit. | Bergantung pada region yang dipilih. Batas ini mungkin lebih besar di region dengan kapasitas tinggi atau lebih rendah di region yang baru dibuka. | T/A | Ya | per project dan region |
Batas Waktu
Kuota | Deskripsi | Batas (generasi ke-1) | Batas (generasi ke-2) | Bisa ditingkatkan | Cakupan |
---|---|---|---|---|---|
Durasi fungsi maksimum | Durasi maksimum sebuah fungsi dapat dijalankan sebelum diakhiri secara paksa | 540 detik | 60 menit untuk fungsi HTTP. 9 menit untuk fungsi yang dipicu oleh peristiwa. |
Tidak | per pemanggilan |
Batas Kapasitas
Kuota | Deskripsi | Batas (generasi ke-1) | Batas (generasi ke-2) | Bisa ditingkatkan | Cakupan |
---|---|---|---|---|---|
Panggilan API (BACA) | Panggilan untuk mendeskripsikan atau membuat daftar fungsi melalui Firebase API | 5.000 per 100 detik | 1.200 per 60 detik | Hanya untuk generasi ke-1 | per project (generasi ke-1) per region (generasi ke-2) |
Panggilan API (TULIS) | Panggilan untuk men-deploy atau menghapus fungsi melalui Firebase API | 80 per 100 detik | 60 per 60 detik | Tidak 1 | per project (generasi ke-1) per region (generasi ke-2) |
Panggilan API (PANGGIL) | Panggilan ke API "panggilan" | 16 per 100 detik | T/A | Tidak 2 | per project |
Batas jaringan
Untuk mengetahui informasi tentang permintaan jaringan dan batas bandwidth Firebase (generasi ke-2), lihat Batas jaringan.
Batas jaringan berikut berlaku untuk Firebase (generasi ke-1):
- Koneksi keluar per detik per instance: 500 (tidak dapat ditingkatkan)
- Resolusi DNS keluar per detik per instance: 100 (tidak dapat ditingkatkan)
Skalabilitas
Firebase yang dipanggil oleh HTTP akan mengalami peningkatan skala dengan cepat untuk menangani traffic yang masuk, sedangkan fungsi latar belakang akan menyesuaikan skala secara bertahap. Kemampuan suatu fungsi untuk meningkatkan skala ditentukan oleh beberapa faktor, termasuk di antaranya:
- Jumlah waktu yang diperlukan agar eksekusi fungsi dapat diselesaikan (fungsi jangka pendek umumnya dapat ditingkatkan skalanya untuk menangani permintaan serentak lainnya).
- Jumlah waktu yang diperlukan agar fungsi dimulai saat melakukan cold start.
- Tingkat error fungsi Anda.
Faktor transien, seperti beban regional dan kapasitas pusat data.
Kuota tambahan untuk fungsi latar belakang
Kuota | Deskripsi | Batas | Bisa ditingkatkan | Cakupan | Versi produk |
---|---|---|---|---|---|
Pemanggilan serentak maks. | Pemanggilan serentak maksimum suatu fungsi tunggal Contoh: jika penanganan setiap peristiwa membutuhkan waktu 100 detik, tingkat pemanggilan akan dibatasi ke 30 per detik secara rata-rata |
3.000 | Ya | per fungsi | Hanya generasi ke-1 |
Tingkat pemanggilan maks. | Tingkat maksimum peristiwa yang ditangani oleh suatu fungsi tunggal Contoh: jika penanganan suatu peristiwa membutuhkan waktu 100 mdtk, tingkat pemanggilan akan dibatasi ke 1.000 per detik sekalipun secara rata-rata hanya ada 100 permintaan yang ditangani secara paralel |
1.000 per detik | Tidak | per fungsi | Hanya generasi ke-1 |
Ukuran data peristiwa serentak maks. | Ukuran total maksimum peristiwa masuk ke pemanggilan serentak suatu fungsi tunggal Contoh: jika peristiwa berukuran 1 MB dan pemrosesannya membutuhkan waktu 10 detik, maka tingkat rata-ratanya adalah 1 peristiwa per detik, karena peristiwa ke-11 tidak akan diproses hingga pemrosesan salah satu dari 10 peristiwa pertama berhasil |
10 MB | Tidak | per fungsi | generasi ke-1 dan generasi ke-2 |
Throughput peristiwa masuk maks. | Throughput maksimum peristiwa masuk ke fungsi tunggal Contoh: jika peristiwa berukuran 1 MB, maka tingkat pemanggilan maksimumnya adalah 10 per detik, meskipun fungsi selesai dalam 100 mdtk |
10 MB per detik | Tidak | per fungsi | generasi ke-1 dan generasi ke-2 |
Jika batas kuota tercapai
Jika sebuah fungsi menghabiskan semua resource yang dialokasikan, resource tersebut tidak akan tersedia lagi sampai kuotanya dimuat ulang atau ditingkatkan. Hal ini dapat berarti bahwa fungsi Anda dan semua fungsi lain dalam project yang sama tidak akan berjalan hingga waktu tersebut. Fungsi akan menampilkan kode error HTTP 500 ketika salah satu resource melebihi kuota dan fungsi tidak dapat berjalan.
Untuk meningkatkan kuota di atas batas default yang tercantum di sini, buka Halaman kuota Firebase, pilih kuota yang ingin diubah, klik Edit quotas, masukkan informasi pengguna jika diminta, lalu masukkan batas kuota baru untuk setiap kuota yang Anda pilih.
Batas kuota untuk deployment Firebase CLI
Untuk setiap fungsi yang di-deploy oleh Firebase CLI, jenis batas kapasitas dan batas waktu berikut akan terkena dampak:
- Panggilan API (BACA) - 1 panggilan per deployment, berapa pun jumlah fungsi
- Batas: 5.000 per 100 detik
- Panggilan API (TULIS) - 1 panggilan per fungsi
- Batas: 80 per 100 detik
Baca juga referensi Firebase CLI.