イベントまたは Pub/Sub メッセージでワークフローをトリガーする

Eventarc トリガーを使用して、イベントまたは一連のイベントの結果としてワークフローを実行できます。イベントは、イベント プロバイダから関心のあるイベント レシーバにルーティングされます。

Eventarc は、HTTP リクエストを使用して CloudEvents 形式のイベント レシーバにイベントを配信します。 Workflows サービスはイベントを(CloudEvents 仕様に従って)JSON オブジェクトに変換し、イベントをワークフロー ランタイム引数としてワークフロー実行に渡します。

ワークフローの実行がトリガーされます。

  • トリガーのフィルタ条件に一致する監査ログが作成された場合。たとえば、このクイックスタートでは、Cloud Audit Logs を使用する BigQuery のイベントを使用して Workflows をトリガーします。
  • Cloud Storage バケットや Firebase Remote Config テンプレートの更新などの直接イベントが発生した場合。たとえば、このクイックスタートでは、Cloud Storage からの直接イベントで Workflows をトリガーします。
  • Pub/Sub トピックに公開されたメッセージによる。たとえば、このクイックスタートでは Pub/Sub メッセージで Workflows をトリガーします。

次の点にご注意ください。

  • イベントはワークフローの実行が開始されると直ちに配信済みであるとみなされ、Workflows サービス内で非同期に実際の実行が行われます。

  • イベントによってトリガーされた実行は、ワークフローの実行が開始された場合には再試行されませんが、後で失敗します。詳細については、イベントの再試行ポリシーをご覧ください。

  • イベントの 1 回限りの処理を保証するための Workflows の重複除去ウィンドウは 24 時間です。

  • Eventarc トリガーの宛先として Workflows を使用している場合は、Workflows の最大引数サイズを超えるイベントはワークフローの実行のトリガーに失敗します。詳細については、割り当てと上限をご覧ください。

  • サービス境界で保護されているプロジェクトでは、Pub/Sub push エンドポイントが Workflows の実行に設定されている Workflows の宛先にイベントを転送する際に、Eventarc を介した新しい Pub/Sub push サブスクリプションのみを作成できます。Workflows エンドポイントの push 認証に使用するサービス アカウントは、サービス境界内に配置する必要があります。詳細については、VPC Service Controls を使用してサービス境界を設定するをご覧ください。

Google Cloud CLI を使用してトリガーを作成する

トリガーを作成するには、必須フラグとオプションのフラグを指定して gcloud eventarc triggers create コマンドを実行します。

詳細については、特定のプロバイダ、イベントタイプ、Workflows の宛先のトリガーを作成する際の「トリガーの作成」セクションにある gcloud の手順をご覧ください。

コンソールを使用してトリガーを作成する

次の手順では、Google Cloud Console の [ワークフロー] ページでトリガーを作成する方法を説明します。

準備

  1. Eventarc and Pub/Sub API を有効にします。

    API を有効にする

  2. Eventarc が Workflows API にリクエストを行えるように、サービス アカウントを作成します。

    1. Google Cloud コンソールで、[サービス アカウント] ページに移動します。

      [サービス アカウント] に移動

    2. プロジェクトを選択し、[サービス アカウントを作成] をクリックします。

    3. [サービス アカウント名] フィールドに、6~30 文字の名前を入力します。

      小文字の英数字とハイフンを使用できます。作成したサービス アカウントの名前は変更できません。

    4. [作成して続行] をクリックします。

    5. 新しいサービス アカウントがワークフローをトリガーする権限を持つように、このアカウントに workflows.invoker ロールを付与します。[ロールを選択] リストで、[Workflows] > [Workflows 起動元] を選択します。

      本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    6. [完了] をクリックします。

  3. Eventarc のコマンドを実行するプリンシパルが Identity and Access Management(IAM)サービス アカウントとして機能できるように、プリンシパルがサービスになりすますことを許可するロールを付与します

トリガーを構成する

  1. トリガーするワークフローが存在しない場合は、作成してデプロイします。

  2. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  3. [ワークフロー] ページで、ワークフローを選択して詳細ページに移動します。

  4. [ワークフローの詳細] ページで [編集 ] を選択します。

  5. [ワークフローの編集] ページで、[新しいトリガーを追加] > [Eventarc] を選択します。

    [Eventarc トリガー] ペインが開きます。

  6. 特定のプロバイダ、イベントタイプ、Workflows の宛先のトリガーを作成する手順に沿って操作し、「トリガーの作成」セクションにある Console の手順を参照してください。

  7. ワークフローを呼び出すサービス アカウントを選択します。

    これにより、以前に workflows.invoker ロールを付与した IAM サービス アカウントを指定し、ワークフローをトリガーする権限を付与します。

  8. [トリガーを保存] をクリックします。

    Eventarc トリガーは、[Workflows の詳細] ページの [トリガー] タブに表示されます。

  9. トリガーを更新または削除する場合は、ワークフローを編集する必要があります。

    1. [ワークフローの詳細] ページで [編集 ] を選択します。
    2. [トリガー] セクションで、更新または削除するトリガーを見つけます。
    3. [ リソースの編集] または [ リソースの削除] をクリックします。

トリガーのフィルタ条件と一致するイベントによって、ワークフローの実行がトリガーされるようになりました。

Terraform を使用してトリガーを作成する

Terraform を使用して、ワークフローのトリガーを作成できます。詳細については、Eventarc と Terraform を使用してワークフローをトリガーするをご覧ください。

次のステップ