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