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