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 の [ワークフロー] ページでトリガーを作成する方法を説明します。
準備
-
Enable the Eventarc and Pub/Sub APIs.
Eventarc が Workflows API にリクエストを行えるように、サービス アカウントを作成します。
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
プロジェクトを選択し、[サービス アカウントを作成] をクリックします。
[サービス アカウント名] フィールドに、6~30 文字の名前を入力します。
小文字の英数字とハイフンを使用できます。作成したサービス アカウントの名前は変更できません。
[作成して続行] をクリックします。
新しいサービス アカウントがワークフローをトリガーする権限を持つように、このアカウントに workflows.invoker ロールを付与します。[ロールを選択] リストで、[Workflows] > [Workflows 起動元] を選択します。
本番環境アプリケーションを開発している場合は、常に、最小限のロールを付与します。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
[完了] をクリックします。
Eventarc のコマンドを実行するプリンシパルが Identity and Access Management(IAM)サービス アカウントとして機能できるように、プリンシパルがサービスになりすますことを許可するロールを付与します。
トリガーを構成する
トリガーするワークフローが存在しない場合は、作成してデプロイします。
Google Cloud コンソールの [ワークフロー] ページに移動します。
[ワークフロー] ページで、ワークフローを選択して詳細ページに移動します。
[ワークフローの詳細] ページで [編集 edit] を選択します。
[ワークフローの編集] ページで、[新しいトリガーを追加] > [Eventarc] を選択します。
[Eventarc トリガー] ペインが開きます。
特定のプロバイダ、イベントタイプ、Workflows の宛先のトリガーを作成する手順に沿って操作し、「トリガーの作成」セクションにある Console の手順を参照してください。
ワークフローを呼び出すサービス アカウントを選択します。
これにより、以前に
workflows.invoker
ロールを付与した IAM サービス アカウントを指定し、ワークフローをトリガーする権限を付与します。[トリガーを保存] をクリックします。
Eventarc トリガーは、[Workflows の詳細] ページの [トリガー] タブに表示されます。
トリガーを更新または削除する場合は、ワークフローを編集する必要があります。
- [ワークフローの詳細] ページで [編集 edit] を選択します。
- [トリガー] セクションで、更新または削除するトリガーを見つけます。
- [edit リソースの編集] または [delete リソースの削除] をクリックします。
トリガーのフィルタ条件と一致するイベントによって、ワークフローの実行がトリガーされるようになりました。
Terraform を使用してトリガーを作成する
Terraform を使用して、ワークフローのトリガーを作成できます。詳細については、Eventarc と Terraform を使用してワークフローをトリガーするをご覧ください。