Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
如何在我的 Route 53 托管区记录发生更改时收到通知?
我想在从 Amazon Route 53 中创建或删除资源记录集时收到包含自定义通知的电子邮件响应。
简短描述
将自定义事件模式与 Amazon EventBridge 规则或 Amazon CloudWatch 事件规则结合使用,该规则在进行 ChangeResourceRecordSets API 调用时触发。然后,将响应路由到 Amazon Simple Notification Service (Amazon SNS) 主题。
**注意:**如果您没有包含电子邮件订阅的 Amazon SNS 主题,请创建一个 Amazon SNS 主题以及 SNS 主题订阅。
解决方法
先决条件:要监控通过 CloudTrail 进行 AWS API 调用 事件,请在创建规则的 AWS 区域激活自定义 CloudTrail 跟踪。要记录包含 CloudTrail 详细信息类型值之一的事件,必须为跟踪启用日志记录。您可以在多个区域中创建跟踪,也可以仅在 us-east-1 区域中创建跟踪。有关详细信息,请参阅使用 CloudTrail 跟踪。
创建 EventBridge 规则
**注意:**Route 53 是一项 AWS 全球服务,仅在美国东部(弗吉尼亚州北部)AWS 区域提供。您必须在美国东部(弗吉尼亚州北部)区域创建 EventBridge 规则。
完成以下步骤:
- 打开 EventBridge 控制台。
- 在导航窗格中,选择 Rules(规则)。
- 选择 Create rule(创建规则)。
- 在 Name(名称)和 Description(描述)字段中,输入规则的名称和描述。
- 选择 Enable the rule on the selected eventbus(在所选事件总线上启用规则)。
- 选择 Rule with an event pattern(带有事件模式的规则)。
- 选择 Next(下一步)。
- 选择 AWS Events(AWS 事件)或 EventBridge partner events(EventBridge 合作伙伴事件)。
- 在 Event pattern(事件模式)下,选择以下选项:
在 Event source(事件源)下拉列表中,选择 AWS services(AWS 服务)。
在 AWS service(AWS 服务)下拉列表中,选择 Route 53。
在 Event type(事件类型)下拉列表中,选择 AWS API Call via CloudTrail(通过 CloudTrail 进行 AWS API 调用)。 - 选择 Specific operation(s)(特定操作)。
- 在 Specific operation(s)(特定操作)中,输入 ChangeResourceRecordSets,以便将事件限制为仅与资源记录集的创建、删除或更新相匹配。
将显示以下事件模式:
{ "source": ["aws.route53"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["route53.amazonaws.com"], "eventName": ["ChangeResourceRecordSets"] } }
- 选择 Next(下一步)。
将 Amazon SNS 目标与 EventBridge 规则相关联
完成以下步骤:
- 打开 EventBridge 控制台。
- 在 Target types(目标类型)部分中,选择 AWS service(AWS 服务)。
- 在 Select a target(选择目标)下拉列表中,选择 SNS topic(SNS 主题)。
- 在 Topic(主题)下拉列表中,选择您的 Amazon SNS 主题。
配置输入转换器选项以自定义 SNS 通知
默认情况下,EventBridge 会将整个 CloudTrail 事件转发到目标。然后,Amazon SNS 主题会以未格式化的 JSON 文本形式发送通知。
当您在 EventBridge 控制台上使用 Input transformer(输入转换器)选项时,您可以指定入站事件中的字段。然后,Input transformer(输入转换器)会将事件转换为更易于理解的消息。
在以下步骤中,示例 Input path(输入路径)字段包含 eventTime、hostedZone、username 和 eventID。更改字段,使其与您的使用案例保持一致。EventBridge 会自动将 Input template(输入模板)中的字段占位符更新为您在 Input transformer(输入转换器)中配置的字段。
要自定义 Amazon SNS 通知,请完成以下步骤:
-
打开 EventBridge 控制台。
-
展开 Additional settings(其他设置)下拉列表。
-
在 Configure target input(配置目标输入)下拉列表中,选择 Input transformer(输入转换器)。
-
选择 Configure input transformer(配置输入转换器)。
-
在 Input path(输入路径)字段中,输入以下代码:
{ "eventTime": "$.detail.eventTime", "hostedZone": "$.detail.requestParameters.hostedZoneId", "userName": "$.detail.userIdentity.sessionContext.sessionIssuer.userName", "eventID": "$.detail.eventID" }
-
在 Template(模板)字段中,输入以下文本:
“在 eventTime,用户 userName 修改了托管区 HostedZone 内的一条或多条 Route 53 记录。要直接在“事件历史记录”中查看该事件并查看这些更改,请使用以下链接。请注意,该事件最多可能需要 15 分钟才会显示在“事件历史记录”中:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=eventID”
**注意:**请将 userName 替换为您的用户名。 -
选择 Confirm(确认)。
-
(可选)向 EventBridge 规则添加标签,然后选择 Next(下一步)。
-
查看规则配置,然后选择 Create rule(创建规则)。
当您更改 Route 53 资源集时,您会收到一条类似于以下内容的通知:
“在 2022-08-16T21:02:46Z,用户 Admin 修改了托管区 ZB3A123456789 内的一条或多条 Route 53 记录。要直接在“事件历史记录”中查看该事件并查看这些更改,请使用以下链接。请注意,该事件最多可能需要 15 分钟才会显示在“事件历史记录”中:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=04d08662-537e-4424-97c2-8bc796943b75”
相关信息
如何创建一条 EventBridge 规则,通过使用输入转换器使 Amazon SNS 通知变得易于理解?

相关内容
- AWS 官方已更新 5 个月前