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