Eventarc for Workflows のトラブルシューティング

このページでは、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 とワークフローのロケーションが指定されていることを確認します。

トリガーは正常に作成されたが、ターゲットがイベントを受信しない

トリガーを作成してから十分な時間が経過していることを確認します。イベントが送信されるまでに 2 分ほどかかることがあります。

それでもトリガーが機能せず、イベントが配信されない場合:

  1. Pub/Sub からターゲットに送信されるイベントがドロップされている可能性があります。イベントがドロップされないように、Pub/Sub サブスクリプションの再試行ポリシーを設定するか、配信不能のメッセージをデッドレター トピックに転送します(これは、デッドレター キューとも呼ばれます)。

    デッドレター トピックを設定する前に、トリガーのトピックとサブスクリプションを取得します。

    gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

    次のように置き換えます。

    • TRIGGER: トリガーの ID または完全修飾識別子。
    • LOCATION: Eventarc トリガーのロケーション。
  2. Google Cloud コンソールを使用して、指標 topic/send_message_operation_count を含むメッセージが Pub/Sub トピックにパブリッシュされているかどうかをモニタリングします。

  3. Pub/Sub トピックにメッセージがパブリッシュされていない場合は、ソースでイベントが生成されていることを確認します。

    • Cloud Audit Logs のイベントの場合は、ログを確認し、モニタリング対象サービスがログを作成していることを確認します。ログが記録されていてもイベントが配信されない場合は、サポートにお問い合わせください。
    • Cloud Storage からのイベントの場合は、バケットの通知を確認します。

      gcloud storage buckets notifications list gs://BUCKET_NAME
      BUCKET_NAME はバケットの名前に置き換えます。
      出力は次のようになります。

      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. ログが記録されていてもイベントが配信されない場合は、サポートにお問い合わせください。