教程:使用输入变换器自定义 EventBridge 传递给事件目标的内容 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

您可以使用输入转换器在 EventBridge 中自定义文本event,然后将其发送到规则

为此,您可以从事件中定义 JSON 路径,并将其输出分配给不同的变量。然后,您可以在输入模板中以形式使用这些变量。这些字符 < and > 不能被转义。有关更多信息,请参阅 转变 Amazon EventBridge 梁目标输入

注意

如果您指定一个变量以匹配在事件中不存在的 JSON 路径,则不会创建该变量,并且不会在输出中显示该变量。

在本教程中,您将创建一个在任何实例更改状态时运行的规则。您将解压缩instance-idstate的 Amazon EC2 实例。然后,您可以使用输入转换器将这些数据放入发送到 Amazon SNS 主题的消息中。​

例如,本教程中的规则与以下 Amazon EC2 实例状态更改通知事件匹配。

{ "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-idJSON 路径,以及state变量设置为$.detail.stateJSON 路径。然后,EventBridge 将这些变量放入输入模板中 “EC2 实例 <instance> 的状态更改为 <state>。” 结果将是 Amazon SNS 消息。

The EC2 instance i-1234567890abcdef0 has changed state to stopped.

第 1 步:创建规则

创建规则以使用输入变换器自定义转到目标的实例状态信息。

创建 规则

  1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule (创建规则)

  4. 键入规则的名称和描述。

  5. 对于 Define pattern (定义模式),请执行以下操作:

    1. 选择 Event pattern

    2. 选择 Pre-defined pattern by service (服务预定义的模式)

    3. 对于 Service provider (服务提供商),选择 Amazon

    4. 对于 Service Name (服务名称),请选择 EMR。​

    5. 对于 Event type (事件类型),请选择 EC2 Instance State-change Notification (EC2 实例状态更改通知)

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

  6. 对于选择事件总线,选择 Amazon 默认事件总线。当Amazon服务发出事件,它会发送到您账户的默认事件总线。

  7. 对于 Target (目标),选择 SNS topic (SNS 主题)

  8. 适用于主题中,选择 Amazon EC2 实例更改状态时要通知的 Amazon SNS 主题。

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

  10. 对于 Input Path (输入路径),输入 {"state" : "$.detail.state", "instance" : "$.detail.instance-id"}

  11. 对于 Input Template (输入模板),输入 "The EC2 instance <instance> has changed state to <state>."

  12. 选择创建

第 2 步:确认成功

如果您在规则列表中看到规则,则表示您已成功创建该规则。

第 3 步:清除资源

现在,您可以删除为本教程创建的资源,除非您想要保留这些资源。通过删除Amazon不再使用的资源,可防止您的Amazonaccount.

删除 EventBridge 梁规则

  1. 打开“规则” 页的 EventBridge 控制台。

  2. 选择创建的规则。

  3. 选择 Delete

  4. 选择 Delete