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

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

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

在 EventBridge 中,将事件传递给规则的目标之前,可以使用输入转换器自定义事件的文本。

方法是从事件中定义 JSON 路径,并将其输出分配给不同的变量。然后,您可以在输入模板中使用这些变量。不能对字符 < 和 > 进行转义。有关更多信息,请参阅亚马逊 EventBridge 输入转换

注意

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

在本教程中,您使用 detail-type: "customerCreated" 创建与事件匹配的规则。输入转换器将变量 type 映射到事件中的 $.detail-type JSON 路径。然后,EventBridge 将此变量放入输入模板 "This event was <type>." 结果是以下 Amazon SNS 消息。

"This event was of customerCreated type."

步骤 1:创建一个 Amazon SNS 主题

创建一个主题,接收来自 EventBridge 的事件。

要创建主题,请执行以下操作
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择 Topics(主题)

  3. 选择 Create topic(创建主题)

  4. 对于 Type(类型),选择 Standard(标准)。

  5. 输入 eventbridge-IT-test 作为主题名称。

  6. 选择 Create topic(创建主题)

步骤 2:创建 Amazon SNS 订阅

创建订阅,接收包含转换信息的电子邮件。

创建订阅
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择 Subscriptions

  3. 选择 Create subscription

  4. 对于主题 ARN,选择您在步骤 1 中创建的主题。在本教程中,选择 eventbridge-IT-test

  5. 对于协议,选择电子邮件

  6. 对于 Endpoint (终端节点),输入您的电子邮件地址。

  7. 选择 Create subscription(创建订阅)。

  8. 在收到的 Amazon 通知电子邮件中选择确认订阅,以确认订阅。

步骤 3:创建规则

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

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

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

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

  4. 为规则输入名称和描述。例如,将规则命名为 ARTestRule

  5. 对于 Event bus(事件总线),请选择要与此规则关联的事件总线。如果您希望此规则匹配来自您账户的事件,请选择默认。当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。

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

  7. 选择 Next(下一步)。

  8. 对于 Event source(事件源),选择 Other(其他)。

  9. 对于事件模式,输入以下代码:

    { "detail-type": [ "customerCreated" ] }
  10. 选择 Next(下一步)。

  11. 对于 Target types(目标类型),选择 Amazon service(服务)。

  12. 对于选择目标,从下拉列表中选择 SNS 主题

  13. 对于主题,请选择您在步骤 1 中创建的 Amazon SNS 主题。在本教程中,选择 eventbridge-IT-test

  14. 对于其他设置,执行以下操作:

    1. 对于配置目标输入,从下拉列表中选择输入转换器

    2. 选择配置输入转换器

    3. 对于示例事件,输入以下代码:

      { "detail-type": "customerCreated" }
    4. 对于目标输入转换器,执行以下操作:

      1. 对于输入路径,输入以下代码:

        {"detail-type":"$.detail-type"}
      2. 对于输入模板,输入以下代码:

        "This event was of <detail-type> type."
    5. 选择确认

  15. 选择 Next(下一步)。

  16. 选择 Next(下一步)。

  17. 查看规则详细信息并选择 Create rule(创建规则)。

步骤 4:发送测试事件

现在,您已经设置了 SNS 主题和规则,我们将发送测试事件,以确保规则可正常运行。

发送测试事件(控制台)
  1. 访问 https://console.aws.amazon.com/events/,打开 Amazon EventBridge 控制台。

  2. 在导航窗格中,选择 Event Buses (事件总线)

  3. 默认事件总线图块中,选择操作发送事件

  4. 输入事件源。例如,TestEvent

  5. 详细信息类型中,输入 customerCreated

  6. 事件详细信息中,输入 {}

  7. 选择 Send (发送)

步骤 5:确认成功

如果您从 Amazon 通知收到一封与预期输出相匹配的电子邮件,则说明您已成功完成本教程。

步骤 6:清除资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。请删除您不再使用的 Amazon 资源,这样可防止您的 Amazon 账户产生不必要的费用。

删除 SNS 主题
  1. 在 SNS 控制台中打开主题页面

  2. 选择您创建的主题。

  3. 选择 Delete (删除)

  4. 输入 delete me

  5. 选择 Delete (删除)

删除 SNS 订阅
  1. 在 SNS 控制台中打开订阅页面

  2. 选择您创建的订阅。

  3. 选择 Delete

  4. 选择 Delete

删除 EventBridge 规则
  1. 在 EventBridge 控制台中打开规则页面

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete