Amazon EventBridge のイベントバスターゲット
ターゲットとは、ルールに定義されたイベントパターンにイベントがマッチしたときに、EventBridge がイベントを送信する先のリソースまたはエンドポイントです。ルールはイベントデータを処理し、関連情報をターゲットに送信します。イベントデータをターゲットに配信するには、EventBridge がターゲットリソースにアクセスする許可が必要です。ルールごとに最大 5 つのターゲットを定義できます。
ルールにターゲットを追加し、その直後にルールが実行されると、新しいターゲットまたは更新されたターゲットがすぐに呼び出されない場合があります。変更が有効になるまで、しばらくお待ちください。
次のビデオでは、ターゲットの基本について説明します。
EventBridge コンソールで利用可能なイベントバスターゲット
EventBridge コンソールでは、イベントに以下のターゲットを設定できます。
-
CodePipeline
-
Amazon EBS
CreateSnapshot
API コール -
EC2 Image Builder
-
EC2
RebootInstances
API コール -
EC2
StopInstances
API コール -
EC2
TerminateInstances
API コール -
Firehose 配信ストリーム
-
Glue ワークフロー
-
Inspector 評価テンプレート
-
Kinesis ストリーミング
-
Lambda 関数 (ASYNC)
-
SageMaker パイプライン
-
Amazon SNS トピック
EventBridge は Amazon SNS FIFO (先入れ先出し) トピックをサポートしていません。
-
Amazon SQS キュー
-
Step Functions ステートマシン (ASYNC)
-
Systems Manager Automation
-
Systems Manager OpsItem
-
Systems Manager Run Command
ターゲットパラメータ
一部のターゲットは、イベントペイロードの情報をターゲットに送信せず、特定の 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 入力変換」を参照してください。
動的構文は、これらのパラメータのすべての文字列の非列挙型フィールドで使用できます。
-
HttpParameters
(HeaderParameters
キーを除く)
許可
所有するリソースで API をコールするには、EventBridge に適切な許可が必要です。AWS Lambda および Amazon SNS リソースの場合、EventBridge はリソースベースのポリシーを使用します。EC2 インスタンス、Kinesis データストリーム、および Step Functions ステートマシンの場合、EventBridge は、PutTargets
の RoleARN
パラメータで指定する 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 呼び出しのトリガー詳細に入力されます。