如何在 EC2 实例更改状态时获取自定义电子邮件通知?

2 分钟阅读
0

我想在 Amazon Elastic Compute Cloud (Amazon EC2) 实例更改状态时接收电子邮件通知。

简短描述

要在您的 EC2 实例更改状态时接收电子邮件通知,请执行以下操作:

  • 创建 Amazon Simple Notification Service (Amazon SNS) 主题以便向订阅的端点或客户端发送消息。
  • 使用 EC2 实例状态更改通知事件类型创建 Amazon EventBridge。

注意:Amazon SNSEventBridge 单独计费。

解决方法

创建 SNS 主题

要创建在实例更改状态时发送电子邮件通知的 Amazon SNS 主题,请完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航窗格中,选择 Topics(主题),然后选择 Create topic(创建主题)。
  3. 对于 Type(类型),选择 Standard(标准)。
  4. 对于 Name(名称),为主题输入名称。
  5. 对于 Display name(显示名称),为主题输入显示名称。
  6. 选择 Create topic(创建主题)。
  7. Subscriptions(订阅)选项卡上,选择 Create subscription(创建订阅)。
  8. 对于 Protocol(协议),选择 Email(电子邮件)。
  9. 对于 Endpoint(端点),输入要用来接收通知的电子邮件地址。
  10. 选择 Create subscription(创建订阅)。
  11. 您将通过输入的电子邮件地址收到一封订阅确认电子邮件。在电子邮件中选择 Confirm subscription(确认订阅)。

创建 EventBridge 事件

要创建在实例更改状态时发送电子邮件通知的 EventBridge 事件,请完成以下步骤:

  1. 打开 EventBridge 控制台
  2. 选择 Create rule(创建规则)。或者在 Events(事件)导航窗格中,选择 Rules(规则),然后选择 Create rule(创建规则)。
  3. 输入规则的 Name(名称)和 Description(描述)。
  4. 保留默认的 Event bus(事件总线)和 Rule type(规则类型)设置,然后选择 Next(下一步)。
  5. Event pattern(事件模式)中,将 Event source(事件源)保留为 AWS services(AWS 服务)。对于 AWS service(AWS 服务),选择 EC2
  6. 对于 Event type(事件类型),选择 EC2 Instance State-change Notification(EC2 实例状态更改通知)。
  7. 保留 Any state(任何状态)和 Any instance(任何实例)作为默认设置,然后选择 Next(下一步)。
  8. 对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。
  9. 对于 Topic(主题),选择您创建的 SNS 主题,然后选择 Next(下一步)。
  10. 展开 Additional settings(其他设置)部分。对于 Configure target input(配置目标输入),选择 Input transformer(输入转换器)。
  11. 选择 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 区域。

要测试规则,请启动和停止实例。每次实例更改状态时,前面的规则都会生成电子邮件通知。

AWS 官方
AWS 官方已更新 4 个月前