配額與限制

本頁詳細介紹了根據 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 調用的雲函數可以快速擴展以處理傳入流量,而後台函數則可以逐漸擴展。函數的擴展能力取決於幾個因素,包括:

  • 函數執行完成所需的時間(短時間運行的函數通常可以擴展以處理更多並發請求)。
  • 函數在冷啟動時初始化所需的時間。
  • 您的函數的錯誤率。
  • 瞬態因素,例如區域負載和數據中心容量。

後台函數有額外的限制,如下所述。這些限制不適用於第一代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

另請參閱 Firebase CLI 參考