创建Event Bridge规则时,如何查找aws.route53对应的detail-type支持值?
Route53相关EventBridge事件的detail-type查询与触发Lambda方案
一、查询source为aws.route53的可用detail-type
1. AWS CLI快速查询
- 列出所有Route53相关的事件源:
aws events list-event-sources --name-prefix "aws.route53"
- 查看近期产生的Route53事件,直接提取实际存在的detail-type:
aws events list-events --event-source "aws.route53" --limit 10
- 结合CloudTrail查询Route53的API事件:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=route53.amazonaws.com --max-items 10
2. 已知的可用detail-type分类
Route53触发的EventBridge事件主要分两类:
- CloudTrail转发的API调用事件:detail-type固定为
AWS API Call via CloudTrail,覆盖所有Route53 API操作(比如ChangeResourceRecordSets、CreateHostedZone等)。 - Route53原生状态变更事件:
Route53 Health Check Status Change:健康检查状态变化时触发Route53 Domain Registration Change:域名注册相关状态变更时触发
二、监控特定Route53区域更新触发Lambda的实现方案
方案1:基于CloudTrail API事件精准匹配
在现有规则基础上,添加托管区域ID的过滤条件,确保只触发目标区域的更新事件:
{ "source": ["aws.route53"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["route53.amazonaws.com"], "eventName": ["ChangeResourceRecordSets"], "requestParameters": { "hostedZoneId": ["你的托管区域ID"] } } }
注意:需确保CloudTrail已开启且已集成EventBridge(默认配置下CloudTrail会自动将API事件发送到EventBridge)。
方案2:使用Route53原生状态事件(按需选择)
如果是监控健康检查等状态变更,直接使用对应detail-type:
{ "source": ["aws.route53"], "detail-type": ["Route53 Health Check Status Change"], "detail": { "healthCheckId": ["你的健康检查ID"] } }
排查之前SNS示例未触发的问题
- 检查CloudTrail配置:确认跟踪包含Route53操作,且已启用EventBridge集成。
- 验证EventBridge规则条件:托管区域ID、eventName等参数是否拼写正确,匹配逻辑是否准确。
- 检查Lambda权限:确保EventBridge服务主体拥有
lambda:InvokeFunction权限。
内容的提问来源于stack exchange,提问作者atom8bit
相关产品推荐
相关产品推荐

