我想在 Amazon Elastic Compute Cloud (Amazon EC2) 实例更改状态时接收电子邮件通知。
简短描述
要在您的 EC2 实例更改状态时接收电子邮件通知,请执行以下操作:
- 创建 Amazon Simple Notification Service (Amazon SNS) 主题以便向订阅的端点或客户端发送消息。
- 使用 EC2 实例状态更改通知事件类型创建 Amazon EventBridge。
注意:Amazon SNS 和 EventBridge 单独计费。
解决方法
创建 SNS 主题
要创建在实例更改状态时发送电子邮件通知的 Amazon SNS 主题,请完成以下步骤:
- 打开 Amazon SNS 控制台。
- 在导航窗格中,选择 Topics(主题),然后选择 Create topic(创建主题)。
- 对于 Type(类型),选择 Standard(标准)。
- 对于 Name(名称),为主题输入名称。
- 对于 Display name(显示名称),为主题输入显示名称。
- 选择 Create topic(创建主题)。
- 在 Subscriptions(订阅)选项卡上,选择 Create subscription(创建订阅)。
- 对于 Protocol(协议),选择 Email(电子邮件)。
- 对于 Endpoint(端点),输入要用来接收通知的电子邮件地址。
- 选择 Create subscription(创建订阅)。
- 您将通过输入的电子邮件地址收到一封订阅确认电子邮件。在电子邮件中选择 Confirm subscription(确认订阅)。
创建 EventBridge 事件
要创建在实例更改状态时发送电子邮件通知的 EventBridge 事件,请完成以下步骤:
- 打开 EventBridge 控制台。
- 选择 Create rule(创建规则)。或者在 Events(事件)导航窗格中,选择 Rules(规则),然后选择 Create rule(创建规则)。
- 输入规则的 Name(名称)和 Description(描述)。
- 保留默认的 Event bus(事件总线)和 Rule type(规则类型)设置,然后选择 Next(下一步)。
- 在 Event pattern(事件模式)中,将 Event source(事件源)保留为 AWS services(AWS 服务)。对于 AWS service(AWS 服务),选择 EC2。
- 对于 Event type(事件类型),选择 EC2 Instance State-change Notification(EC2 实例状态更改通知)。
- 保留 Any state(任何状态)和 Any instance(任何实例)作为默认设置,然后选择 Next(下一步)。
- 对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。
- 对于 Topic(主题),选择您创建的 SNS 主题,然后选择 Next(下一步)。
- 展开 Additional settings(其他设置)部分。对于 Configure target input(配置目标输入),选择 Input transformer(输入转换器)。
- 选择 Configure input transformer(配置输入转换器),然后为 Input path(输入路径)和 Template(模板)输入以下文本。
对于 Input path(输入路径),输入以下文本:
{"instance-id":"$.detail.instance-id", "state":"$.detail.state", "time":"$.time", "region":"$.region", "account":"$.account"}
对于 Template(模板),输入以下文本:
"At <time>, the status of your EC2 instance <instance-id> on account <account> in the AWS Region <region> has changed to <state>."
**注意:**您可以将自定义输入添加到前面的输入模板中。有关如何自定义事件文本的详细信息,请参阅 Amazon EventBridge 输入转换。
选择 Next(下一步)。
将可选 Tags(标签)留空,然后选择 Next(下一步)。
选择 Create rule(创建规则)。
**注意:**您创建的规则适用于单个 AWS 区域。
要测试规则,请启动和停止实例。每次实例更改状态时,前面的规则都会生成电子邮件通知。