排解 Workflows 的 Eventarc 問題

本頁說明如何解決使用 Eventarc for Workflows 時可能遇到的問題。

如要瞭解其他可能遇到的問題,請參閱下列疑難排解文章:

工作流程目標不存在,因此無法建立觸發條件

您會收到類似以下的錯誤訊息:

cloud workflow "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID" does not exist
這項輸出內容包含下列值:

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • LOCATION:工作流程的位置
  • WORKFLOW_ID:工作流程名稱

如果 Eventarc 找不到目標工作流程,就會發生這種情況。 解決方法如下:

  1. 確認目標工作流程存在且為「有效」狀態:

    gcloud workflows list --location -

    輸出內容應與下列內容類似:

    NAME                                                          STATE   REVISION_ID  UPDATE_TIME
    projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID  ACTIVE  000004-c0c   2021-11-19T14:29:27.530185556Z

  2. 建立觸發條件時,請確認您提供的流程 ID 和流程位置正確無誤。

已成功建立觸發條件,但目標未收到事件

確認觸發條件建立後已過足夠時間。系統最多可能需要兩分鐘的時間才會傳送事件。

如果觸發條件仍無法運作,且系統未傳送事件,請採取下列行動:

  1. 從 Pub/Sub 傳送至目標的事件可能會遭到捨棄。為確保事件不會遭到捨棄,請設定 Pub/Sub 訂閱重試政策,或將未傳送的訊息轉送至死信主題 (也稱為死信佇列)。

    設定無效信件主題前,請先擷取觸發條件的主題和訂閱項目:

    gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

    更改下列內容:

    • TRIGGER:觸發條件的 ID 或完整 ID。
    • LOCATION:Eventarc 觸發條件的位置。
  2. 使用 Google Cloud 控制台監控訊息是否已發布至 Pub/Sub 主題,並使用指標:topic/send_message_operation_count

  3. 如果訊息未發布至 Pub/Sub 主題,請確認來源是否產生事件:

    • 如果是 Cloud 稽核記錄的事件,請檢查記錄,並確認受監控的服務正在寫入記錄。如果系統已記錄記錄檔,但未傳送事件,請與支援團隊聯絡
    • 如要查看 Cloud Storage 傳出的事件,請檢查值區的通知:

      gcloud storage buckets notifications list gs://BUCKET_NAME
      BUCKET_NAME 替換為 bucket 名稱。
      輸出內容應與下列內容類似:

      projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_CONFIG_ID
      Cloud Pub/Sub topic: projects/PROJECT_ID/topics/TOPIC_ID
      Filters:
        Event Types: OBJECT_ARCHIVE

      這項輸出內容包含下列值:

      • TOPIC_ID:現有 Pub/Sub 主題的 ID。
      • NOTIFICATION_CONFIG_ID:通知設定的 ID。
  4. 如果系統正在傳送事件,但未觸發任何工作流程執行作業,這可能是因為未經驗證的呼叫所致。請確認觸發程序已與有權建立工作流程執行的服務帳戶建立關聯。如需更多資訊,請按照「準備建立觸發程序」一節中的操作說明,為特定供應商、事件類型和 Workflows 目的地建立觸發程序時,建立使用者管理的服務帳戶。

  5. 如果訊息已發布至 Pub/Sub 主題,但未觸發任何工作流程執行作業,請確認 Eventarc 酬載未超過 512 KB。如要進一步瞭解資源限制,請參閱「配額與限制」。

    1. 前往 Cloud 控制台的「訂閱項目」頁面。

      前往「訂閱項目」頁面

    2. 監控訂閱項目中未確認的訊息。詳情請參閱「監控轉寄的無法傳送郵件」。

    3. 如有未確認的訊息,請監控工作流程記錄檔中的 TriggerPubsubExecution 方法。如要進一步瞭解如何查看工作流程記錄,請參閱「查看工作流程記錄」。

      • 使用篩選器 Permission 'workflows.executions.create' denied 確認觸發條件是否與有權觸發工作流程執行的服務帳戶建立關聯。如要進一步瞭解如何將適當的角色授予服務帳戶,請按照「準備建立觸發程序」一節中的操作說明,為特定供應商、事件類型和 Workflows 目的地建立觸發程序。
      • 使用 event size exceeded 關鍵字,確認事件大小是否超過 512 KB。
    4. 如果系統已記錄記錄檔,但未傳送事件,請與支援團隊聯絡

  • 如要瞭解其他 Workflows 專屬問題,請參閱「排解問題」。
  • 如需其他協助,請參閱「取得支援」一文。