此頁面詳細說明了根據 Blaze 即用即付定價計劃對 Cloud Functions 的可擴展、基於使用的限制。這些限制適用於將函數部署到 Node.js 10 運行時環境的 Firebase 項目。
Blaze 計劃免費提供大量的調用、計算時間和互聯網流量。但是,函數部署會對函數容器使用的存儲空間產生小額費用。有關詳細信息,請參閱 Firebase常見問題解答。
Google Cloud Functions 的配額包括 3 個領域:
資源限制
這些會影響您的函數可以消耗的資源總量。
時間限制
這些會影響事情可以運行多長時間。
速率限制
這些會影響您可以調用 Cloud Functions API 的速率和/或可以使用資源的速率。您可以將費率配額視為“隨時間變化的資源”。
下面更詳細地描述了不同類型的限制。 Cloud Functions(第 1 代)和 Cloud Functions(第 2 代)的限制之間的差異會在適用的情況下註明。
資源限制
資源限制會影響您的函數可以消耗的資源總量。區域範圍是每個項目,每個項目都有自己的限制。
配額 | 描述 | 限制(第一代) | 限制(第 2 代) | 可以增加 | 範圍 |
---|---|---|---|---|---|
功能數量 | 每個區域可以部署的功能總數 | 1,000 | 1000 減去已部署的 Cloud Run 服務數量 | 不 | 每個地區 |
最大部署規模 | 單個功能部署的最大大小 | 100MB(壓縮)用於源。 源和模塊為 500MB(未壓縮)。 | 不適用 | 不 | 每個功能 |
最大未壓縮 HTTP 請求大小 | 在 HTTP 請求中發送到 HTTP 函數的數據 | 10MB | 32MB | 不 | 每次調用 |
最大未壓縮 HTTP 響應大小 | 在 HTTP 響應中從 HTTP 函數發送的數據 | 10MB | 10MB 用於流式響應。 32MB 用於非流式響應。 | 不 | 每次調用 |
事件驅動函數的最大事件大小 | 在事件中發送到後台函數的數據 | 10MB | Eventarc 事件為 512KB。 10MB 用於遺留事件。 | 不 | 每個事件 |
最大功能記憶 | 每個函數實例可以使用的內存量 | 8GiB | 16GiB | 不 | 每個功能 |
時間限制
配額 | 描述 | 限制(第一代) | 限制(第 2 代) | 可以增加 | 範圍 |
---|---|---|---|---|---|
最大功能持續時間 | 函數在被強制終止之前可以運行的最長時間 | 540 秒 | HTTP 函數需要 60 分鐘。 10 分鐘用於事件驅動的函數。 | 不 | 每次調用 |
速率限制
配額 | 描述 | 限制(第一代) | 限制(第 2 代) | 可以增加 | 範圍 |
---|---|---|---|---|---|
API 調用(閱讀) | 通過 Cloud Functions API 調用描述或列出函數 | 每 100 秒 5000 個 | 每 60 秒 1200 | 僅適用於第一代 | 每個項目(第一代) 每個地區(第 2 代) |
API 調用 (WRITE) | 通過 Cloud Functions API 調用部署或刪除函數 | 每 100 秒 80 個 | 每 60 秒 60 個 | 沒有1 | 每個項目(第一代) 每個地區(第 2 代) |
API 調用 (CALL) | 調用“調用”API | 每 100 秒 16 個 | 不適用 | 2號 | 每個項目 |
可擴展性
HTTP 調用的 Cloud Functions 可快速擴展以處理傳入流量,而後台函數可逐漸擴展。函數的擴展能力取決於幾個因素,包括:
後台功能有額外的限制,如下所述。這些限制不適用於HTTP 函數。後台功能的額外配額
配額 | 描述 | 限制 | 可以增加 | 範圍 |
---|---|---|---|---|
最大並發調用 | 單個函數的最大並發調用次數 示例:如果處理每個事件需要 100 秒,則調用率將限制為平均每秒 30 次 | 3,000 | 不 | 每個功能 |
最大調用率 | 單個函數處理事件的最大速率 示例:如果處理一個事件需要 100 毫秒,即使平均只有 100 個請求被並行處理,調用率也會被限制為每秒 1000 個 | 每秒 1000 個 | 不 | 每個功能 |
最大並發事件數據大小 | 單個函數並發調用的傳入事件的最大總大小 示例:如果事件的大小為 1MB 並且處理它們需要 10 秒,則平均速率將為每秒 1 個事件,因為在前 10 個事件之一處理完成之前不會處理第 11 個事件 | 10MB | 不 | 每個功能 |
傳入事件的最大吞吐量 | 單個函數的傳入事件的最大吞吐量 示例:如果事件的大小為 1MB,則調用率可以最大為每秒 10 次,即使函數在 100 毫秒內完成 | 每秒 10MB | 不 | 每個功能 |
當您達到配額限制時
當一個函數消耗所有分配的資源時,該資源將變得不可用,直到配額被刷新或增加。這可能意味著您的功能和同一項目中的所有其他功能在此之前將無法工作。當其中一個資源超出配額且函數無法執行時,函數會返回 HTTP 500 錯誤代碼。
要將配額增加到此處列出的默認值以上,請轉到Cloud Functions 配額頁面,選擇要修改的配額,單擊EDIT QUOTAS ,如果出現提示,請提供您的用戶信息,然後為您選擇的每個配額輸入新的配額限制。
Firebase CLI 部署的配額限制
對於 Firebase CLI 部署的每個函數,這些類型的速率和時間限制都會受到影響:
- API 調用 (READ) - 每次部署 1 次調用,無論有多少功能
- 限制:每 100 秒 5000
- API 調用 (WRITE) - 每個函數 1 次調用
- 限制:每 100 秒 80 個
另請參閱Firebase CLI 參考。