我希望在 Amazon Elastic Compute Cloud (Amazon EC2) 实例状态更改时收到电子邮件通知。我该如何操作?
简短描述
要在您的 EC2 实例更改状态时收到电子邮件通知,请执行以下操作:
1. 创建一个 Amazon Simple Notification Service (Amazon SNS) 主题。SNS 主题将消息发送至订阅的端点或客户端。
2. 使用 EC2 实例状态更改通知事件类型创建一个 Amazon EventBridge。
解决方案
创建 SNS 主题
1. 打开 Amazon SNS 控制台,然后从导航窗格中选择 主题。
2. 选择创建主题。
3. 对于 Type(类型),选择 Standard(标准)。
4. 对于 Name(名称),输入主题的名称。
5. 对于 Display name(显示名称),为主题输入显示名称。
6. 选择 Create topic(创建主题)。
7. 在 Subscriptions(订阅)选项卡上,选择 Create subscription(创建订阅)。
8. 对于协议,选择电子邮件。
9. 对于 Endpoint(终端节点),输入您希望接收通知的电子邮件地址。
10. 选择 Create subscription(创建订阅)。
订阅确认电子邮件将发送到您输入的地址。在电子邮件中选择确认订阅。请注意您创建的 SNS 主题。您可以在创建 EventBridge 规则时使用本主题。
创建 EventBridge 事件
1. 打开 EventBridge 控制台。
2. 从主页选择创建规则。或者,在侧栏的事件下选择规则,然后选择创建规则。
3. 为规则输入名称。可选择输入描述。
4. 保留默认的事件总线和规则类型设置,然后选择下一步。
5. 在事件模式中,将事件源保留为 AWS 服务。对于 AWS 服务,请选择 EC2。
6. 对于事件类型,选择 EC2 实例状态更改通知。
7. 保留 Any state(任意状态)和 Any instance(任何实例)作为默认设置,然后选择下一步。
8. 对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。
9. 对于主题,选择您之前创建的主题名称,然后选择下一步。
10. 展开其他设置部分。对于 Configure target input(配置目标输入),选择 Input transformer(输入转换器)。
11. 选择Configure input transformer(配置输入转换器),然后输入以下文本:
对于输入路径,输入以下内容:
{"instance-id":"$.detail.instance-id", "state":"$.detail.state", "time":"$.time", "region":"$.region", "account":"$.account"}
对于模板,输入以下内容:
"At <time>, the status of your EC2 instance <instance-id> on account <account> in the AWS Region <region> has changed to <state>."
**注意:**输入模板还允许自定义输入。
12. 选择 Next(下一步)。
13. 将可选标签留空,然后选择下一步。然后,选择 Create rule(创建规则)。
**注意:**您创建的规则适用于单个 AWS 区域。
您可以通过启动或停止实例测试规则。每次实例状态更改时,无论更改为何种状态,包括 stopped(已停止)状态,此规则都会生成电子邮件通知。