配額與限制

Workflows 會使用配額和系統限制,維持公平的資源分配、防止服務超載,並協助您管理資源用量。

配額和系統限制類似,但有以下差異:

  • 「配額」有預設值,但通常可以申請調整。
  • 「系統限制」是固定值,無法變更。

Google Cloud 使用配額來確保公平性,並減少資源使用量和可用性出現劇烈波動的情況。配額會限制 Google Cloud 專案可使用的Google Cloud 資源數量,配額適用多種資源類型,包括硬體、軟體和網路元件。舉例來說,配額可能會限制能向特定服務發出的 API 呼叫次數、專案可同時使用的負載平衡器數量,或是可建立的專案數量。配額機制可防止服務過載,保障Google Cloud 使用者社群的權益,同時也有助於您管理自己的 Google Cloud 資源。

Cloud Quotas 系統具備以下功能:

如果嘗試使用的資源量超過配額限制,系統通常會阻擋該資源的存取活動,您所執行的工作就會失敗。

配額的計算通常是以 Google Cloud 專案為基準。在某個專案中使用資源,不會影響另一個專案的可用配額。在同一個 Google Cloud 專案內,所有應用程式和 IP 位址會共用配額。

詳情請參閱「Cloud Quotas 總覽」。

Workflows 資源也設有系統限制。而且無法變更。

配額

Workflows 會對每個 Google Cloud專案強制執行下列配額。您可以提高或降低這些配額:

配額 說明 值
工作流程總數 每項專案可部署的工作流程數量上限 10,000
並行執行作業

每個專案在各區域中可執行的工作流程數量上限。並行執行作業是指已開始但尚未完成或失敗的執行作業,包括等待回呼或休眠的執行作業。

達到配額後,如果預設啟用執行作業待處理功能 (部分例外狀況),系統會以 QUEUED 狀態建立執行作業。如果停用執行作業待處理功能,或待處理執行作業的配額已達上限,任何新的執行作業都會失敗,並傳回 HTTP 429 Too many requests 狀態碼。詳情請參閱「管理執行作業待處理項目」。

10,000
待處理的執行作業 每個專案在各區域的待處理工作流程執行數量上限。

詳情請參閱「管理執行作業待處理項目」。

100,000
Workflow API 要求 專案中所有工作流程的 API 要求數量上限 (create、update、list、get、delete) (每分鐘、每個位置) 1,200
Execution API get 要求 專案中所有工作流程對 get 工作流程執行的要求數量上限 (每個位置每分鐘) 6,000
Execution API list 要求 專案中所有工作流程對 list 工作流程執行的要求數量上限 (每個位置每分鐘) 1,200
Execution API write 要求 專案中所有工作流程 (每分鐘、每個位置) 對 create 和 cancel 工作流程執行作業 (包括 Eventarc 觸發的執行作業) 的要求數量上限。

如果 Eventarc 觸發的執行作業超過上限,系統會依據 Eventarc 重試政策重試事件。

6,000
Execution API 取得步驟項目要求 工作流程執行作業中,對 get 步驟項目的要求數量上限 (每個位置每分鐘) 6,000
Execution API 列出步驟項目要求 工作流程執行作業中,list 步驟項目的要求數量上限 (每個位置每分鐘) 1,200
Execution API 匯出資料要求 工作流程執行作業每分鐘在每個位置可向 export data 傳送的要求數量上限 10
傳送至回呼端點的 HTTP 要求 專案中所有工作流程對執行資源發出的 SendHttpCallback API 要求數量上限 (每分鐘、每個位置) 1,500
Execution API 清單回呼要求 工作流程執行作業對 list 回呼的要求數量上限 (每個位置每分鐘) 300

配額提高要求

如要提高或降低配額,請使用 Google Cloud 控制台。詳情請參閱「要求提高配額」。

監控配額用量

您可以查詢及監控配額用量指標。如需範例,請參閱「監控配額指標」,瞭解如何查詢 Workflows 已耗用的分配配額總量。如要瞭解如何監控配額用量指標,請參閱「繪製配額指標圖表並監控配額指標」。

步驟限制

Workflows 會對每個工作流程強制執行下列步驟限制。您無法要求變更下列限制:

限制 說明 值
每個步驟的指派項目 單一步驟中可執行的指派數量上限 50
每個切換工具的條件 單一切換區塊中可評估的條件數量上限 50
呼叫堆疊深度上限 呼叫函式的層級數量上限,例如子工作流程呼叫自身或其他子工作流程,或標準程式庫函式呼叫反過來呼叫其他函式 20
步驟數量下限 工作流程中的步驟數量下限 1
步數上限 單一工作流程執行作業中可執行的步驟數量上限

如要進一步瞭解哪些操作會計為步驟,請參閱「最佳化用量」。

100,000

平行步驟限制

使用平行步驟時,Workflows 會強制執行下列限制。您無法要求變更下列限制:

限制 說明 值
每個步驟的分支數量 平行步驟中支援的分支數量上限 10
平行深度 平行步驟可巢狀結構的最大深度 2
並行分支和疊代

在單一工作流程執行作業中,可同時執行的分支和疊代數量上限。超過這個上限後,後續的分支和疊代會自動排入佇列,等待一或多個執行中的執行緒完成。

執行緒總數沒有限制,但其他限制仍適用。

20
並行步驟中未捕捉的例外狀況 執行工作流程期間,可引發的未處理例外狀況數量上限 (總計) 100

資源限制

Workflows 會強制執行下列用量限制。您無法要求變更下列限制:

限制 說明 值
原始碼大小 定義工作流程的 YAML 或 JSON 檔案大小上限 128 KB
回應大小 HTTP 回應的大小上限 (如果儲存至變數,則適用變數的記憶體限制) 2 MB
HTTP 要求逾時

單一 HTTP 要求的可設定時間長度上限。如果要求超過逾時時間,就會失敗並傳回 TimeoutError:

  • 如果是 HTTP 要求步驟 (http.get、http.post、http.request 和其他 http.* 呼叫),預設 timeout 為 300 秒 (5 分鐘),您最多可以將 timeout 設為 1,800 秒 (30 分鐘)。如果將 timeout 設為超過 1,800 秒,系統會引發 ValueError。
  • 如果是連接器呼叫,預設 connector_params.timeout 為 1,800 秒 (30 分鐘)。如果將重試或長時間執行作業輪詢的 connector_params.timeout 設為較長的時間 (最長 1 年),則每個 HTTP 要求的上限為 1,800 秒。
1,800 秒 (30 分鐘)
運算式長度 單一運算式中的字元數上限 400 個字元
資料大小 變數、引數和事件的累計大小上限: 512 KB
  • 在特定工作流程的單次執行作業中,您定義的所有變數可使用的記憶體容量上限
  • 建立工作流程執行作業時,可傳遞的引數大小上限
  • 使用事件觸發工作流程執行作業時,可傳遞的 Eventarc 酬載大小上限
使用 UTF-8 編碼時,字串長度上限 (以位元組為單位) 256 KB
環境變數 使用者定義環境變數定義字串 (KEY=value) 的大小上限;最多可定義 20 個變數 4 KiB
執行作業時間長度 工作流程執行的時間長度上限 (從開始時間到結束時間);任何超過這項限制的工作流程都會因逾時錯誤而結束 1 年
執行作業保留 執行記錄和結果的最長保留期限 (工作流程執行完成後) 90 天
簡化時間範圍 簡化時間範圍,確保使用事件觸發工作流程執行作業時,只會處理一次 24 小時