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

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

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

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

次のビデオでは、ターゲットの基本について説明します。

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

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

ターゲットパラメータ

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

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

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

  • Amazon EC2 Image Builder

  • RedshiftDataParameters (Amazon Redshift データ API クラスター)

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

注記

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

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

  • ダッシュ

  • 下線

  • アルファベットの文字

  • 配列インデックス

  • ワイルドカード (*)

動的パスパラメータ

一部のターゲットパラメータでは、オプションの動的 JSON パス構文がサポートされています。この構文では、静的値の代わりに JSON パスを指定できます (例えば、$.detail.state)。値の一部だけではなく全体を JSON パスにする必要があります。例えば、RedshiftParameters.Sql$.detail.state とすることができますが、"SELECT * FROM $.detail.state" とすることはできません。このようなパスは、実行時に、指定されたパスにあるイベントペイロード自体のデータで動的に置き換えられます。動的パスパラメータは、入力変換の結果として生じる新しい値または変換された値を参照できません。動的パラメータの JSON パスでサポートされている構文は、入力を変換する場合と同じです。詳細については、「Amazon EventBridge 入力変換」を参照してください。

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

許可

所有するリソースで API をコールするには、EventBridge に適切な許可が必要です。AWS Lambda および Amazon SNS リソースの場合、EventBridge はリソースベースのポリシーを使用します。EC2 インスタンス、Kinesis データストリーム、および Step Functions ステートマシンの場合、EventBridge は、PutTargetsRoleARN パラメータで指定する IAM ロールを使用します。構成された IAM 認可で API Gateway エンドポイントを呼び出すことができますが、認可を構成していない場合、ロールはオプションです。詳細については、「Amazon EventBridge と AWS Identity and Access Management」を参照してください。

別のアカウントが同じリージョンにあって、許可を付与されている場合は、そのアカウントにイベントを送信できます。詳細については、「Amazon EventBridge における AWS アカウント間でのイベントの送受信」を参照してください。

ターゲットが暗号化されている場合は、KMS キーポリシーに次のセクションを含める必要があります。

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

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

AWS BatchsubmitJob に対する特定のパラメータは、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 プロジェクト

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

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

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

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

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