向 API 目标发送 CloudEvents 事件 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

向 API 目标发送 CloudEvents 事件

CloudEvents 是针对事件格式的供应商中立规范,旨在提供跨服务、平台和系统的互操作性。您可以使用 EventBridge 在 Amazon 服务事件发送到目标(例如 API 目的地) CloudEvents 之前将其转换为。

注意

以下过程说明了如何将源事件转换为结构化模式。 CloudEvents在 CloudEvents 规范中,结构化模式消息是将整个事件(属性和数据)编码到事件的有效载荷中的消息。

有关 CloudEvents 规范的更多信息,请参阅 cloudeven ts.io。

使用控制台将 Amazon 事件转换为 CloudEvents 格式

要将事件转换为传送到目标之前的 CloudEvents 格式,首先要创建事件总线规则。作为定义规则的一部分,在将变换事件发送到您指定的目标之前,您可以使用输入 EventBridge 转换器来处理变换事件。

  1. 遵循创建对事件作出反应的 Amazon EventBridge 规则过程中的步骤。

  2. 在该选择目标步骤中,当系统提示您选择 API 目标作为目标类型时:

    1. 选择 EventBridge API 目的地

    2. 请执行以下操作之一:

      • 选择使用现有 API 目标并选择现有 API 目标

      • 选择创建新 API 目标并指定必要的设置来定义新 API 目标。

        有关指定所需设置的更多信息,请参阅创建 API 目标

    3. 为事件指定必需的 Content-Type 标头参数: CloudEvents

      • 在 “标题参数” 下,选择 “添加标题参数”

      • 对于密钥,请指定Content-Type

        对于,请指定application/cloudevents+json; charset=UTF-8

  3. 为目标指定执行角色。

  4. 定义输入转换器,将源事件数据转换为以下 CloudEvents 格式:

    1. “其他设置” 下,对于 “配置目标输入”,选择 “输入变压器”。

      然后选择 “配置输入变压器”。

    2. 目标输入变压器下,指定输入路径

      在下面的输入路径中,region 属性是该 CloudEvents 格式的自定义扩展属性。因此,不要求遵守 CloudEvents 规范。

      CloudEvents 允许您使用和创建核心规范中未定义的扩展属性。有关更多信息,包括已知扩展属性的列表,请参阅CloudEvents 规范文档中的CloudEvents 扩展属性 GitHub。

      { "detail": "$.detail", "detail-type": "$.detail-type", "id": "$.id", "region": "$.region", "source": "$.source", "time": "$.time" }
    3. 模板中,输入模板以将源事件数据转换为 CloudEvents 格式。

      在下面的模板中,region并不是严格要求的,因为输入路径中的region属性是 CloudEvents 规范的扩展属性。

      { "specversion":"1.0", "id":<id>, "source":<source>, "type":<detail-type>, "time":<time>, "region":<region>, "data":<detail> }
  5. 按照步骤完成规则的创建。