透過事件或 Pub/Sub 訊息觸發工作流程

您可以透過 Eventarc 觸發條件,在發生事件或一連串事件時執行工作流程。事件會從事件供應商轉送至相關的事件接收端。

Eventarc 會透過 HTTP 要求,以 CloudEvents 格式將事件傳送至事件接收器。Workflows 服務會將事件轉換為 JSON 物件 (遵循 CloudEvents 規格),並將事件做為工作流程執行階段引數傳遞至工作流程執行作業。

系統會觸發工作流程執行作業:

注意事項:

  • 工作流程執行作業開始後,系統就會將事件視為已傳送,而實際執行作業則會在 Workflows 服務中以非同步方式進行。

  • 如果工作流程執行作業是由事件觸發,但稍後失敗,系統不會重試。詳情請參閱「事件重試政策」。

  • 工作流程的重複資料刪除時間範圍為 24 小時,確保事件只會處理一次。

  • 如果使用 Workflows 做為 Eventarc 觸發條件的目的地,當事件大小超過 Workflows 引數大小上限時,系統將無法觸發工作流程執行作業。詳情請參閱「配額與限制」。

  • 在受服務安全防護範圍保護的專案中,將事件路由至 Pub/Sub 推送端點設為 Workflows 執行的 Workflows 目的地時,您只能透過 Eventarc 建立新的 Pub/Sub 推送訂閱項目。請注意,用於 Workflows 端點推送驗證的服務帳戶必須納入服務範圍。詳情請參閱「使用 VPC Service Controls 設定服務範圍」。

使用 Google Cloud CLI 建立觸發條件

您可以執行 gcloud eventarc triggers create 指令,並搭配必要和選用標記來建立觸發條件。

如需更多資訊,請參閱「建立觸發條件」一節中的 gcloud 指示,瞭解如何為特定供應商、事件類型和 Workflows 目的地建立觸發條件

使用控制台建立觸發條件

下列步驟說明如何在 Google Cloud 控制台的「Workflows」頁面建立觸發條件。

事前準備

  1. Enable the Eventarc and Pub/Sub APIs.

    Enable the APIs

  2. 建立服務帳戶,讓 Eventarc 可以對 Workflows API 發出要求:

    1. 前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。

      前往「Service Accounts」(服務帳戶)

    2. 選取專案,然後按一下「建立服務帳戶」

    3. 在「Service account name」(服務帳戶名稱) 欄位中,輸入長度介於 6 到 30 個字元的名稱。

      可使用小寫英數字元和破折號,建立服務帳戶後,即無法變更名稱。

    4. 按一下「建立並繼續」

    5. workflows.invoker 角色授予新服務帳戶,讓該帳戶有權觸發工作流程。在「Select a role」(選取角色) 清單中,依序選取「Workflows」>「Workflows Invoker」(工作流程叫用者)

      如果您要開發正式版應用程式,請務必授予權限最少的角色。詳情請參閱「管理專案、資料夾和機構的存取權」。

    6. 按一下 [完成]

  3. 如要允許執行 Eventarc 指令的主體以身分與存取權管理 (IAM) 服務帳戶的身分操作,請授予主體可模擬服務帳戶的角色

設定觸發條件

  1. 如果沒有要觸發的工作流程,請建立並部署一個

  2. 前往 Google Cloud 控制台的「Workflows」頁面:

    前往「Workflows」頁面

  3. 在「工作流程」頁面中選取工作流程,前往詳細資料頁面。

  4. 在「Workflow Details」(工作流程詳細資料) 頁面中,按一下 「Edit」(編輯)

  5. 在「Edit workflow」(編輯工作流程) 頁面,依序選取「Add new trigger」(新增觸發條件) >「Eventarc」

    「Eventarc trigger」(Eventarc 觸發條件) 窗格隨即開啟。

  6. 按照操作說明為特定供應商、事件類型和目的地建立觸發條件Workflows ,然後參閱「建立觸發條件」一節中的控制台操作說明。

  7. 選取叫用工作流程的服務帳戶

    這會指定您先前授予 workflows.invoker 角色的 IAM 服務帳戶,讓該帳戶有權觸發工作流程。

  8. 按一下「儲存觸發條件」

    Eventarc 觸發條件會列在「工作流程詳細資料」頁面的「觸發條件」分頁中。

  9. 如要更新或刪除觸發條件,請編輯工作流程:

    1. 在「Workflow Details」(工作流程詳細資料) 頁面中,按一下 「Edit」(編輯)
    2. 在「觸發條件」部分中,找出要更新或刪除的觸發條件。
    3. 按一下 「編輯資源」「刪除資源」

現在,只要事件符合觸發條件的篩選條件,就會觸發工作流程執行作業。

使用 Terraform 建立觸發條件

您可以使用 Terraform 建立工作流程的觸發條件。詳情請參閱「使用 Eventarc 和 Terraform 觸發工作流程」。

後續步驟