Amazon CloudWatch 事件
用户指南
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.state JSON 路径,将 state 变量映射到 $.detail.instance-id JSON 路径,来实现这一点。然后,我们将输入模板设置为“EC2 实例 <instance> 将状态更改为 <state>。”

创建规则

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

  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. 选择 EC2,然后选择 EC2 Instance State-change Notification

    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. 键入规则的名称和描述,然后选择创建规则

本页内容: