亚马逊 EventBridge 管道 - 亚马逊 EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊 EventBridge 管道

Amaz EventBridge on Pipes 将源代码连接到目标。它减少了在开发事件驱动架构时对专业知识和集成代码的需求,从而促进了公司应用程序的一致性。要设置管道,请选择来源,添加可选筛选,定义可选扩展,然后选择事件数据的目标。

EventBridge 管道可用于创建电子商务系统。假设您有一个包含客户元数据(例如送货地址)的 API。来源可能是收到的 Amazon SQS 订单消息。然后,管道将该数据发送到Amazon API Gateway API 增强版,后者返回该订单的客户信息。最后,管道将丰富的数据发送到Amazon Step Functions状态机,由状态机处理订单。

EventBridge 管道接收来自各种来源的事件数据,对这些数据应用可选的过滤器和扩展,然后将其发送到目标。如果源对发送到管道的事件强制执行顺序,则该顺序将在发送到目标的整个过程中保持不变。更多有关来源的信息,请参阅 亚马逊 EventBridge 管道消息来源

过滤

EventBridge 管道可以过滤给定源的事件,然后仅处理这些事件的子集。有关筛选的更多信息,请执行以下操作,请执行以下亚马逊 EventBridge 管道筛选操作:

充实

通过 Pipes EventBridge 的扩充步骤,可以在将源数据发送到目标之前对其进行增强。例如,您可能会收到不包含完整票证数据的 Ticket 创建的事件。使用扩展,您可以让 Lambda 函数调用get-ticket API 以获取完整的票证详细信息。然后,管道可以将该信息发送到目标

在中设置管道时,可以配置以下扩展 EventBridge:

  • API 目标

  • Amazon API Gateway

  • Lambda 函数

  • Step Functions 状态机

    注意

    EventBridge Pipes 仅支持 Express 工作流程作为增强。

EventBridge 同步调用增益,因为它在调用目标之前必须等待强化对象的响应。

充实回应的最大大小,请执行以下操作:

您也可以先转换从源接收的数据,然后再将其发送以进行增强。有关更多信息,请参阅亚马逊 EventBridge 管道输入转换

使用扩充功能筛选事件

EventBridge 管道将扩充响应直接传递到配置的目标。这包括对支持批处理的目标的数组响应。有关批处理行为的更多信息,请执行以下操作,请执行以下亚马逊 EventBridge 管道的批处理和并发性操作:你也可以使用你的扩充作为过滤器,传递的事件要少于从源头收到的事件。如果您不想调用目标,请返回空响应,例如""{}、或[]

注意

如果你想用空的有效负载调用目标,请返回一个带有空 JSON 的数组[{}]

目标

筛选和丰富事件数据后,您可以将其发送到特定目标,例如 Amazon Kinesis 直播或亚马逊 CloudWatch 日志组。有关可用目标的列表,请执行以下亚马逊 EventBridge 管道的目标操作:

您可以在数据增强之后以及将其发送到目标之前对其进行转换。有关更多信息,请参阅亚马逊 EventBridge 管道输入转换

验证配置参数

创建管道后, EventBridge 验证以下配置参数:

  • IAM 角色 — 由于在创建管道后无法更改管道的来源,因此 EventBridge 会验证所提供的 IAM 角色是否可以访问该源。

    注意

    EventBridge 不会对增益或目标进行相同的验证,因为它们可以在创建管道后更新。

  • 批处理 — EventBridge 验证源的批次大小不超过目标的最大批次大小。如果是,则 EventBridge需要较小的批次大小。此外,如果目标不支持批处理,则无法 EventBridge 为源配置批处理。

  • 扩展 — EventBridge 验证 API Gateway 和 API 目标扩充的批量大小是否为 1,因为仅支持批量大小 1。

调用类型

EventBridge 有以下方法来调用浓缩或目标:

  • 同步(调用类型设置为REQUEST_RESPONSE)— 在继续操作之前 EventBridge 等待扩充者或目标的响应。

  • 异步(调用类型设置为FIRE_AND_FORGET)— EventBridge 不等待响应后再继续。

默认情况下,会同步 EventBridge 调用增益,因为它在调用目标之前必须等待强化对象的响应。同样,对于具有有序源的管道,目标是同步调用的,因为在进入下一个事件之前需要目标的响应。

如果源不强制执行命令,例如标准 Amazon SQS 队列,则 EventBridge 可以同步或异步调用支持的目标。

使用 Lambda 函数和 Step Functions 状态机,您可以配置调用类型。

注意

对于 Step Functions 状态机,必须异步调用标准工作流

启动或停止管道

默认情况下,管Running道是在创建时处理事件。要在不处理事件的情况下创建管道,请在 API 调用StoppedDesiredState将设置为,或者在控制台中关闭 Ac tivat e pipe 设置。

如果您使用 Amazon SQS、Kinesis 或 DynamoDB 源创建管道,则创建管道通常需要一两分钟。

如果您使用亚马逊 MSK、自我管理的 Apache Kafka 或Amazon MQ 源创建管道,则创建管道最多可能需要十分钟。

要更改现有管道的状态,请执行以下操作:

  • API — 将DesiredState参数设置为RUNNINGSTOPPED

  • 控制台 — 在 “管道设置” 选项卡的 “激活” 下,在 “激活管道” 中,开启或关闭 “激管道”。

管道处于状态STOPPED和不再处理事件之间可能会有延迟。这种延迟通常少于两分钟,。