如何使用 EventBridge 接收 EC2 实例的计划事件通知?

2 分钟阅读
0

当我的 Amazon Elastic Compute Cloud(Amazon EC2)实例有计划事件时,我希望接收来自 Amazon EventBridge 的通知。

简短描述

您可以创建 EventBridge 规则以启动 EC2 实例的计划事件。然后,您可以为与您的事件模式匹配的事件配置 Amazon Simple Notification Service(Amazon SNS)通知。您还可以通过 AWS Lambda 配置进一步处理。

解决方法

**重要提示:**在开始之前,请确保您有适用于通知的 SNS 主题。如果您没有,请创建新的 SNS 主题并订阅此主题

使用 EventBridge 控制台创建在事件上启动的 EventBridge 规则

1.    为规则指定名称和(可选)描述

2.    对于 Event bus(事件总线),选择 default(默认)。

3.    对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。

4.    选择下一步

5.    对于 Event Source(事件源),选择 AWS events(AWS 事件)或 EventBridge partner events(EventBridge 合作伙伴事件)。

6.    (可选)对于 Sample events(示例事件),选择事件的类型。

7.    对于 Creation method(创建方法),选择 Use pattern form(使用模式表单)。

8.    对于 Event source(事件源),选择 AWS services(AWS 服务)。

9.    对于 AWS service(AWS 服务),选择 Health。这是作为事件源的 AWS 服务的名称**。**

10.    对于 Event Type(事件类型),选择 Specific Health events(特定运行状况事件)。

11.    依次选择 Specific service(s)(特定服务)和 EC2

12.    依次选择 Specific event type category(s)(特定事件类型类别)和 scheduledChange

13.    (可选)要创建更具体的规则,请包含 Specific event type code(s)(特定事件类型代码)或 Specific resource(s)(特定资源)。向规则添加这些选项之一后,将会针对特定事件或实例发送通知。

这些设置会创建以下事件模式:

**注意:**您还可以通过复制和粘贴以下代码作为您的规则来创建事件模式。选择 Create Rule(创建规则)之后,请在 Event Pattern preview(事件模式预览)部分选择 Edit(编辑)。插入以下代码,选择 Save(保存),然后继续创建 SNS 目标。

{
  "source": [
    "aws.health"
  ],
  "detail-type": [
    "AWS Health Event"
  ],
  "detail": {
    "service": [
      "EC2"
    ],
    "eventTypeCategory": [
      "scheduledChange"
    ]
  }
}

14.    选择您的 SNS 目标:
选择 Add target(添加目标)。
对于目标,请选择 SNS topic(SNS 主题)。
对于 Topic(主题),请选择您用于接收通知的 SNS 主题。

以下示例是一个将转发到目标的 EventBridge 事件:

{
  "version": "0",
  "id": "7fb65329-1628-4cf3-a740-95fg457h1402",
  "detail-type": "AWS Health Event",
  "source": "aws.health",
  "account": "123456789101",
  "time": "2016-06-05T06:27:57Z",
  "region": "us-east-1",
  "resources": ["i-12345678"],
  "detail": {
    "eventArn": "arn:aws:health:region::event/id",
    "service": "EC2",
    "eventTypeCode": "AWS_EC2_DEDICATED_HOST_NETWORK_MAINTENANCE_SCHEDULED",
    "eventTypeCategory": "scheduledChange",
    "startTime": "Sat, 05 Jun 2016 15:10:09 GMT",
    "eventDescription": [{
      "language": "en_US",
      "latestDescription": "A description of the event will be provided here"
    }],
    "affectedEntities": [{
      "entityValue": "i-12345678",
      "tags": {
        "stage": "prod",
        "app": "my-app"
      }
    }]
  }
}

如果您的使用案例需要将特定字段传输到目标,请在 Configure input(配置输入)下附加 Input Transformer(输入转换器)。或者,将 Lambda 函数附加为目标,以运行指定的处理。


相关信息

AWS Health 事件(CloudWatch Events)

通过 Amazon CloudWatch Events 监控 AWS Health 事件

如何使用输入转换器为 API 调用设置人类可读的 EventBridge 通知?

Amazon EventBridge 输入转换

AWS 官方
AWS 官方已更新 1 年前