Amazon EventBridge のイベントバスターゲット - Amazon EventBridge

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EventBridge のイベントバスターゲット

ターゲットとは、ルールに定義されたイベントパターンにイベントがマッチしたときに、EventBridge がイベントを送信する先のリソースまたはエンドポイントです。ルールはイベントデータを処理し、関連情報をターゲットに送信します。イベントデータをターゲットに配信するには、EventBridge がターゲットリソースにアクセスする許可が必要です。ルールごとに最大 5 つのターゲットを定義できます。

ルールにターゲットを追加し、その直後にルールが実行されると、新しいターゲットまたは更新されたターゲットがすぐに呼び出されない場合があります。変更が有効になるまで、しばらくお待ちください。

EventBridge コンソールで利用可能なイベントバスターゲット

EventBridge コンソールでは、ルールに以下のターゲットタイプを設定できます。

ターゲットパラメータ

一部のターゲットは、イベントペイロードの情報をターゲットに送信せず、特定の API を呼び出すトリガーとしてイベントを扱います。EventBridge は、ターゲットパラメータを指定して、そのターゲットで発生する処理を決定します。これには以下が含まれます。

  • API 送信先

    API 送信先に送られるデータは、API の構造と一致する必要があります。InputTransformer オブジェクトを使用して、データが正しく構造化されていることを確認します。元のイベントペイロードを含める場合は、InputTransformer で参照します。

  • API ゲートウェイ

    API Gateway に送信されるデータは、API の構造と一致する必要があります。InputTransformer オブジェクトを使用して、データが正しく構造化されていることを確認します。元のイベントペイロードを含める場合は、InputTransformer で参照します。

  • Amazon EC2 Image Builder

  • Amazon Redshift Data API クラスター

    RedshiftDataParameters を使用します。

  • Amazon SageMaker ランタイムモデル構築パイプライン

    SageMakerPipelineParameters を使用します。

  • Amazon SQS 公平キューと FIFO キュー

    SqsParameters を使用して、ターゲットとして使用するメッセージグループを指定します。

注記

EventBridge ですべての JSON パス構文がサポートされているわけではなく、構文は実行時に評価されます。サポートされている構文には以下が含まれます。

  • ドット表記 ($.detail など)

  • ダッシュ

  • 下線

  • アルファベットの文字

  • 配列インデックス

  • ワイルドカード (*)

動的パスパラメータ

動的パスパラメータを使用すると、JSON パス構文を使用して、静的値の代わりに実行時にイベントデータを参照できます。

ターゲットパラメータで動的 JSON パス構文を使用して、静的値 ( など) の代わりに JSON パスを指定できます$.detail.state

要件

値全体は、その一部ではなく JSON パスである必要があります。例えば、次のようになります。

  • ✓ 正解: RedshiftParameters.Sql 可能 $.detail.state

  • ✗ 不正解: RedshiftParameters.Sql は使用できません "SELECT * FROM $.detail.state"

EventBridge は、実行時にこれらのパスを、指定されたパスのイベントペイロードのデータに置き換えます。

制限事項

動的パスパラメータは、入力変換から新しい値または変換された値を参照できません。JSON パス構文は、入力変換構文と同じです。詳細については、「Amazon EventBridge 入力変換」を参照してください。

サポートされているパラメータ

これらのパラメータのすべての文字列フィールドと非列挙型フィールドで動的構文を使用できます。

権限

所有するリソースで API コールを行うには、EventBridge に適切な許可が必要です。EventBridge コンソールを使用するか、PutTargetsRoleARN パラメータを設定して、IAM 実行ロールを指定します。

例えば、次のポリシーでは、Amazon SQS キューにメッセージを送信するアクセス許可を定義します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name" ] } ] }

さらに次の信頼ポリシーにより、EventBridge はロールを引き受けることができます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

構成された IAM 認可で API Gateway エンドポイントを呼び出すことができますが、認可を構成していない場合、ロールはオプションです。詳細については、「Amazon EventBridge と AWS Identity and Access Management」を参照してください。

別のアカウントが同じリージョンにあって、許可を付与されている場合は、そのアカウントにイベントを送信できます。

詳細については、「Amazon EventBridge の AWS アカウント間でイベントを送受信する」を参照してください。

Amazon SQS キューなどのターゲットが AWS Key Management Service (AWS KMS) 暗号化を使用する場合は、KMS キーポリシーに次のセクションを含める必要があります。

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

AWS Batch ターゲットとしてのジョブキュー

に設定する AWS Batch submitJob特定のパラメータは、BatchParameters を介して設定できます。

その他はイベントペイロードで指定できます。(InputTransformer を介して渡される) イベントペイロードに次のキーが含まれている場合、それらは submitJob リクエストパラメータにマップされます。

  • ContainerOverrides: containerOverrides

    注記

    これには、コマンド、環境、メモリ、および VCPU のみが含まれます

  • DependsOn: dependsOn

    注記

    これには jobId のみが含まれます

  • Parameters: parameters

ターゲットとしての CloudWatch Logs

CloudWatch Logs ターゲットで InputTransformer を使用しない場合、イベントペイロードはログメッセージとして、イベントのソースはタイムスタンプとして使用されます。InputTransformer を使用する場合、テンプレートは次のようになっている必要があります。

{"timestamp":<timestamp>,"message":<message>}

EventBridge はログストリームに送信されるエントリをバッチ処理します。そのため、EventBridge がトラフィックに応じて 1 つまたは複数のイベントをログストリームに配信する場合があります。

ターゲットとしての CodeBuild プロジェクト

EventBridge は、標準ビルドとバッチビルドの両方をターゲットとしてサポートしています。

入力トランスフォーマーを使用して、ソースイベントを CodeBuild ターゲットに配信する前に StartBuildRequest 構造と一致するように形成すると、パラメータは 1 対 1 でマッピングされ、デフォルトで codeBuild.StartBuild に渡されます。

代わりに、パラメータを codeBuild.StartBuildBatch に渡すには、StartBuildBatchRequest 構造と一致するようにソースイベントを変換し、変換したイベントのルートに次のキーと値のペアを追加します。

"buildType": "BATCH"

ターゲットとしての Amazon ECS タスク

InputTransformers を使用して入力イベントを Amazon ECS RunTask TaskOverride 構造と一致するようにターゲットに形成すると、パラメータは 1 対 1 でマッピングされ、ecs.RunTask に渡されます。

ターゲットとしての Incident Manager レスポンスプラン

一致したイベントが CloudWatch アラームからのものである場合、アラーム状態変化の詳細は、Incident Manager への StartIncidentRequest 呼び出しのトリガー詳細に入力されます。

ターゲットとしての Amazon SQS キュー

EventBridge は、 AWS 所有のキーで暗号化された Amazon SQS キューの使用をサポートしていません。これには、ターゲットと、ターゲットのデッドレターキューとして指定された Amazon SQS キューが含まれます。詳細については AWS 所有のキー、「 AWS Key Management Service デベロッパーガイド」のAWS 「 所有キー」を参照してください。