以下是如何通过一个Amazon EventBridge规则中的两个目标发送事件的示例代码:
对于以下示例,我们创建了一个EventBridge规则,该规则将发送两个目标/事件转发器。 与此同时,该规则将通过该事件转发器将事件发送到两个不同的Lambda函数。
{
"source": [ "aws.ec2" ],
"detail-type": [ "EC2 Instance State-change Notification" ],
"detail": {
"state": [ "running", "stopped" ]
}
}
下一步是设置两个目标/事件转发器-一个是执行Python代码的Lambda函数,另一个是执行Node.js代码的Lambda函数。 使用TargetIds来为每个目标分配ID。
{
"source": "aws.ec2",
"detail-type": "EC2 Instance State-change Notification",
"detail": {
"state": [ "running", "stopped" ]
},
"targets": [
{
"id": "execute-python-code",
"arn": "arn:aws:lambda:us-east-1:123456789012:function:my-python-function",
"inputTransformer": {
"inputPathsMap": {
"instance": "$.detail.instance-id",
"state": "$.detail.state"
},
"inputTemplate": "{ \"instance\": , \"state\": }"
}
},
{
"id": "execute-node-js-code",
"arn": "arn:aws:lambda:us-east-1:123456789012:function:my-nodejs-function",
"inputTransformer": {
"inputPathsMap": {
"instance": "$.detail.instance-id",
"state": "$.detail.state"
},
"inputTemplate": "{ \"instance\": , \"state\": }"
}
}
]
}
这样,该规则将在触发状态更改事件时,将事件同时发送到这两个Lambda函数。
请注意,每个目标都必须具有唯一的ID。识别目标ID非常重要,因为它在调试事件路由时非常有用。
上一篇:AmazonEventBridge/StepFunction/Lambda-是否可以实现幂等性而不引入同步处理?
下一篇:AmazonEventBridgeClient.PutEventsAsync 方法即使提供的事件总线名称不存在也会返回状态码 OK。