Amazon CloudWatch Events
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:使用输入转换器自定义要传递给事件目标的内容

您可以使用 CloudWatch Events 的输入转换器功能自定义从事件获取的文本,然后再将文本输入规则目标。

您可以从事件中定义多个 JSON 路径,并将其输出分配给不同的变量。然后,您可以在输入模板中以 <variable-name> 形式使用这些变量。

如果指定一个变量来匹配事件中不存在的 JSON 路径,则该变量将替换为 null。不能对字符 < 和 > 进行转义。

在本教程中,我们从实例状态更改事件中提取 Amazon EC2 实例的实例 ID 和状态。我们使用输入转换器将这些数据放入发送给 Amazon SNS 主题的易于阅读的消息中。当任何实例更改为任何状态时,均将触发该规则。例如,使用此规则,以下 Amazon EC2 实例状态更改通知事件将产生 Amazon SNS 消息:EC2 实例 i-1234567890abcdef0 将状态更改为已停止

{ "id":"7bf73129-1428-4cd3-a780-95db273d1602", "detail-type":"EC2 Instance State-change Notification", "source":"aws.ec2", "account":"123456789012", "time":"2015-11-11T21:29:54Z", "region":"us-east-1", "resources":[ "arn:aws:ec2:us-east-1:123456789012:instance/ i-1234567890abcdef0" ], "detail":{ "instance-id":" i-1234567890abcdef0", "state":"stopped" } }

我们通过将 instance 变量映射到事件中的 $.detail.instance-id JSON 路径,将 state 变量映射到 $.detail.state JSON 路径,来实现这一点。然后,我们将输入模板设置为“The EC2 instance <instance> has changed state to <state>.”

创建规则

使用输入转换器自定义发送到目标的实例状态更改信息

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 EventsCreate rule

  3. 对于 Event source,执行以下操作:

    1. 选择 Event Pattern

    2. 选择 Build event pattern to match events by service

    3. 依次选择 EC2EC2 实例状态更改通知

    4. 依次选择任何状态任何实例

  4. 对于目标,依次选择添加目标SNS 主题

  5. 对于主题,选择要在 Amazon EC2 实例更改状态时获得通知的 Amazon SNS 主题。

  6. 选择配置输入输入转换器

  7. 在下一个框中,键入 {"state" : "$.detail.state", "instance" : "$.detail.instance-id"}

  8. 在接下来的框中,键入“The EC2 instance <instance> has changed state to <state>."

  9. 选择 Configure details

  10. 键入规则的名称和描述,然后选择创建规则

本页内容: