Workflows 是全代管的自動化調度管理平台,可按照您定義的順序執行服務,也就是工作流程。這些工作流程可以合併服務,包括 Cloud Run 或 Cloud Run 函式上託管的自訂服務、 Google Cloud Cloud Vision AI 和 BigQuery 等服務,以及任何以 HTTP 為基礎的 API。
將工作流程納入解決方案後,您就能明確瞭解服務依附元件,並從頭到尾觀察這些元件。指定應用程式、作業或業務流程的工作流程,可為該流程提供真實來源或標準敘述。
Workflows 採用無伺服器架構,可視需求向上擴充,閒置時不會產生費用。由於工作流程不含程式碼或程式庫依附元件,因此不需要安全性修補程式。工作流程部署完成後,即可穩定執行,不需維護。工作流程最多可保留狀態、重試、輪詢或等待一年。
Workflows 符合這些 認證和標準。
下圖顯示使用 Workflows 協調服務的範例:
主要用途
工作流程支援多種用途。舉例如下:
服務自動調度管理 | 結合服務來建立解決方案:在多個系統中執行一連串作業,並等待所有作業完成。可由事件觸發。舉例來說:
|
Batch 工作 | 對多個項目執行作業:對一組項目或批次資料執行作業。經常排定行程。舉例來說:
|
業務程序 | 自動執行業務工作流程:編碼業務程序中的步驟,包括條件、動作和人為介入事件。舉例來說:
|
IT 流程自動化 | 服務作業的受管理執行作業:輕鬆編寫服務作業的序列指令碼。 Google Cloud 例如:
|
核心概念
工作流程是由一系列步驟組成,這些步驟會使用 Workflows 語法描述,並以 YAML 或 JSON 格式編寫。這是工作流程的定義。如需 Workflows 語法的詳細說明,請參閱語法參考資料。
建立工作流程後,系統會部署工作流程,讓工作流程準備好執行。瞭解如何透過 Google Cloud 控制台或使用 Google Cloud CLI 建立及更新工作流程。您也可以使用偏好的 IDE 或原始碼編輯器建立工作流程,並設定自動完成和語法驗證。
「執行作業」是指單次執行工作流程定義中包含的邏輯。未執行的工作流程不會產生費用。所有工作流程執行作業都是獨立的,且產品可快速調度資源,因此能同時執行大量作業。您可以使用用戶端程式庫、在 Google Cloud 控制台中使用 Google Cloud CLI,或使用 Workflows REST API 將 HTTP POST
要求傳送至工作流程的叫用網址,以執行工作流程。詳情請參閱「執行工作流程」。
區域性
Workflows 是區域服務,工作流程是區域資源,受資源位置限制約束。 您可以使用資源位置政策控管資料落地權。
請注意,工作流程部署到特定區域後,只會在該區域執行;不過,如果工作流程發出任何 HTTP 要求或使用連接器,HTTP 呼叫可能不會來自同一區域。
主要功能
以下是 Workflows 的幾項重要功能。
執行控制
- 步驟
- 如要建立工作流程,請使用 Workflows 語法定義必要步驟和執行順序。每個工作流程至少要有一個步驟。根據預設,工作流程會將步驟視為有序清單,並逐一執行,直到所有步驟都執行完畢為止。詳情請參閱步驟。
- 條件
- 您可以將
switch
區塊做為選取機制,讓運算式的值控制工作流程的執行流程。詳情請參閱「條件」。 - 疊代作業
- 您可以使用
for
迴圈,逐一處理一系列數字或資料集合 (例如清單或對應)。詳情請參閱「疊代」。 - 平行步驟
- 您可以使用
parallel
步驟定義工作流程的一部分 (分支或迴圈),這些部分可以同時執行。詳情請參閱「平行步驟」。 - 子工作流程
- 子工作流程的運作方式與程式設計語言中的常式或函式類似,可讓您封裝工作流程會重複執行的步驟或步驟集。詳情請參閱「子工作流程」。
觸發執行作業
- 手動
- 您可以透過主控台或指令列 (使用 Google Cloud CLI) 管理工作流程。 Google Cloud 您也可以透過 Google Cloud 控制台 ,在編輯工作流程語法時查看視覺化結果。
- 程式輔助
- 您可以使用 Workflows API 的 Cloud 用戶端程式庫或 REST API 管理工作流程。詳情請參閱「Workflows API 和參考資料」。
- 已排定
- 您可以使用 Cloud Scheduler,按照特定時間表執行工作流程,例如每週一上午 9 點或每 15 分鐘執行一次。詳情請參閱使用 Cloud Scheduler 排定工作流程。
- 執行階段引數
- 如要存取在執行階段傳遞的資料,請將
params
欄位新增至主要工作流程 (放在main
區塊中)。main
區塊接受單一引數,即任何有效的 JSON 資料型別。params
欄位會命名工作流程用來儲存您傳入資料的變數。詳情請參閱「執行階段引數」。
連結服務
- HTTP API
- 您可以定義工作流程步驟,發出 HTTP 呼叫,並將呼叫的回應指派給變數。舉例來說,您可以透過 HTTP 要求叫用 Cloud Run 函式或 Cloud Run 等服務。 Google Cloud系統支援 HTTP 和 HTTPS 要求。詳情請參閱「發出 HTTP 要求」和「叫用 Cloud Run 函式或 Cloud Run」。
- 您可以搭配使用 Service Directory 的服務登錄和 Workflows,從工作流程執行作業指定 HTTP 呼叫的私人端點。這樣一來,您就能為工作流程提供 Service Directory 服務名稱。工作流程執行作業會使用從服務登錄檔擷取的資訊,傳送適當的 HTTP 要求,不會連出至公用網路。詳情請參閱「使用 Service Directory 的服務登錄檔叫用私人端點」。
- 或者,您也可以啟用 Identity-Aware Proxy (IAP),叫用私有內部部署、Compute Engine、Google Kubernetes Engine (GKE) 或其他 Google Cloud 端點。透過 HTTPS 存取的應用程式可經由 IAP 建立中央授權層,因此,您可以使用應用程式層級的存取權控管模型,而非依賴網路層級的防火牆。詳情請參閱「啟用 IAP 來叫用私有內部部署、Compute Engine、GKE 或其他端點」。
- 在虛擬私有雲 (VPC) 網路中建立私人端點時,您可以設定服務安全防護範圍,並搭配使用 VPC Service Controls 和 Workflows,降低資料外洩風險。
- 連接器
- 工作流程會發布連接器,可用於在工作流程中連結至其他 Google Cloud API,並將工作流程與這些 Google Cloud 產品整合。這類函式庫會處理要求格式化作業,並提供方法和引數,因此您不必瞭解Google Cloud API 的詳細資料,即可簡化服務呼叫作業。詳情請參閱「瞭解連接器」一文。
- 標準程式庫和環境變數
- 您可以使用 Workflows 標準程式庫、內建環境變數和使用者定義的環境變數,有效建構服務的引數並處理回應。
- 標準程式庫包含模組和常用函式,例如資料類型和格式轉換。您不必在工作流程中匯入或載入程式庫,程式庫函式會立即運作。詳情請參閱「標準程式庫總覽」。
- 您可以使用內建環境變數,存取工作流程的環境資訊 (例如位置或專案 ID)。內建環境變數不需要宣告,且適用於每次工作流程執行作業。詳情請參閱「內建環境變數」。
- 部署工作流程時,您可以將任意鍵和值字串組合設為使用者定義的環境變數,供工作流程在執行階段存取。舉例來說,您可以建立工作流程,根據部署環境動態設定。詳情請參閱「使用環境變數」。
處理錯誤
您可以運用 Workflows 的例外狀況處理功能 (包括自動重試 HTTP 呼叫並採用指數輪詢、自訂錯誤處理常式和其他進階功能),讓工作流程具備復原能力,並在發生失敗時自訂工作流程的行為。詳情請參閱「工作流程錯誤」。
等待中
工作流程執行作業可透過回呼,等待其他服務向回呼端點發出要求;該要求會繼續執行工作流程。透過回呼,您可以向工作流程發出信號,表示已發生特定事件,並等待該事件,不必輪詢。詳情請參閱「使用回呼等待」。
您可以在工作流程定義中新增休眠步驟,暫停執行工作流程。接著,您可以使用 sys.sleep
,以特定間隔輪詢資料。詳情請參閱「使用輪詢等待」。
驗證和存取權控管
由於每次執行工作流程都需要經過驗證的呼叫,因此使用 Workflows 可降低意外或惡意呼叫的風險。您也可以使用以 IAM 為基礎的服務帳戶,簡化與其他 API 的互動,並使用 Secret Manager 連接器安全地儲存金鑰和密碼,以便向外部 API 進行驗證。 Google Cloud 詳情請參閱驗證和存取權控管。
觀測能力
工作流程會自動在 Cloud Logging 中產生工作流程執行的執行記錄。您也可以透過呼叫記錄或自訂記錄,在工作流程執行期間控制記錄傳送至 Logging 的時間。詳情請參閱「將記錄傳送至 Cloud Logging」。
稽核記錄資訊會顯示在 Cloud 稽核記錄中。詳情請參閱工作流程和工作流程執行作業的稽核記錄資訊。
您可以擷取指定工作流程執行的記錄,以步驟項目的清單形式呈現。每個項目都代表工作流程執行中的步驟或指令區塊。步驟項目可協助您判斷錯誤來源,或提升工作流程效能。
程式碼範例
您可以在範例頁面上找到許多實用的 Workflows 程式碼範例。
後續步驟
如要開始使用 Workflows,請前往 Google Cloud 控制台或使用 gcloud CLI。
進一步瞭解如何建立及更新工作流程。
瞭解如何控管工作流程步驟的執行順序。