本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudEvents 是用于格式化事件的供应商中立规范,旨在提供跨服务、平台和系统的互操作性。在将 AWS 服务事件发送到目标(例如 API 目标)之前,您可以使用 EventBridge 将其转换为 CloudEvents 格式。
注意
以下过程说明了如何将源事件转换为结构化模式的 CloudEvents 格式。在 CloudEvents 规范中,结构化模式消息是将整个事件(属性和数据)编码到事件有效载荷中的消息。
有关 CloudEvents 规范的更多信息,请参阅 cloudevents.io
使用控制台将 AWS 事件转换为 CloudEvents 格式
要在将事件传送到目标之前将其转换为 CloudEvents 格式,首先要创建事件总线规则。定义规则时,您可以在将事件发送到指定目标之前,使用输入转换器让 EventBridge 来转换这些事件。
遵循创建可对 Amazon 中的事件做出反应的规则 EventBridge过程中的步骤。
在选择目标步骤中,当系统提示您选择 API 目标的目标类型时:
选择 EventBridge API 目标。
请执行以下操作之一:
选择使用现有 API 目标,然后选择一个现有 API 目标。
选择创建新的 API 目标,然后指定必要的设置来定义新的 API 目标。
有关指定所需设置的更多信息,请参阅在亚马逊上创建 API 目标 EventBridge。
为 CloudEvents 事件指定必要的 Content-Type 标头参数:
在标头参数下,选择添加标题参数。
对于键,请指定
Content-Type
。对于值,请指定
application/cloudevents+json; charset=UTF-8
。
为目标指定执行角色。
定义一个输入转换器,将源事件数据转换为 CloudEvents 格式:
在其他设置中,对于配置目标输入,请选择输入转换器。
选择配置输入转换器。
在目标输入变压器下,指定输入路径。
在下面的输入路径中,region 属性是 CloudEvents 格式的自定义扩展属性。因此,不需要遵守 CloudEvents 规范。
CloudEvents 允许您使用和创建核心规范中未定义的扩展属性。有关更多信息,包括已知扩展属性的列表,请参阅 GitHub 上 CloudEvents 规范文档中的
CloudEvents 扩展属性 。 { "detail": "$.detail", "detail-type": "$.detail-type", "id": "$.id", "region": "$.region", "source": "$.source", "time": "$.time" }
对于模板,输入要将源事件数据转换为 CloudEvents 格式的模板。
在下面的模板中,对
region
并没有严格要求,因为输入路径中的region
属性是 CloudEvents 规范的扩展属性。{ "specversion":"1.0", "id":<id>, "source":<source>, "type":<detail-type>, "time":<time>, "region":<region>, "data":<detail> }
根据过程步骤,完成规则创建。