如何配置EventBridge规则仅匹配指定EC2实例终止事件
如何通过标签过滤EC2终止事件触发EventBridge规则
当然可以通过标签限定一组EC2实例,不用逐个指定实例ID,这样能精准控制触发范围,避免Lambda无效调用。
核心逻辑
EC2实例状态变更事件(含终止)的Payload里包含实例的完整标签信息,你可以在EventBridge规则的事件模式中添加标签匹配条件,只触发符合标签规则的实例终止事件。
具体配置步骤
创建/编辑EventBridge规则
- 选择事件源为
AWS EC2,事件类型选EC2 Instance State-change Notification - 重点配置事件模式,用JSON编写过滤条件:
以上示例会匹配所有带有{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["terminated"], "Tags": [ { "Key": "Environment", "Value": "Production" } ] } }Environment=Production标签的EC2实例终止事件。
- 选择事件源为
多标签匹配逻辑
- 需多个标签同时满足:直接在
Tags数组中添加多个标签对象"Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Team", "Value": "DevOps" } ] - 需任一标签满足:使用EventBridge的
$or操作符实现或逻辑"detail": { "state": ["terminated"], "$or": [ { "Tags": [{"Key": "Environment", "Value": "Production"}] }, { "Tags": [{"Key": "Environment", "Value": "Staging"}] } ] }
- 需多个标签同时满足:直接在
验证规则有效性
- 配置完成后,用EventBridge的测试事件功能,模拟带目标标签的EC2终止事件,验证规则是否能正确匹配并触发Lambda。
注意事项
- 确保EC2实例的标签在终止前已正确配置,事件触发时会携带当前实例的标签状态
- 若标签值含特殊字符,需在事件模式中正确转义
- 需确保Lambda拥有接收EventBridge触发请求的执行权限
内容的提问来源于stack exchange,提问作者rhowell
相关产品推荐
相关产品推荐

