例えば、ECSのタスクステータスの変化を取得してLambdaを起動する場合を例に、CloudFormationでの定義を確認すると。
EventRuleMultipleTarget:
Type: "AWS::Events::Rule"
Properties:
Name: multiple-target-event-rule
EventPattern:
source:
- "aws.ecs"
detail-type:
- "ECS Task State Change"
detail:
clusterArn: !Sub ${ClusterArn}
State: "ENABLED"
Targets:
- Arn: TargetLambda1.Arn
Id: multiple-target-event-rule-1-id
- Arn: TargetLambda2.Arn
Id: multiple-target-event-rule-2-id
このように、 Targets
が配列を取るようになっている。
呼び出しの対象となるLambdaのARNと、イベントのIDをそれぞれ定義することで、1つのイベントから複数のターゲットをフックすることができる。
なお、これはCloudWatchに限らずイベントの設定に汎用性があるものと思われる。