Amazon EventBridge Pipes
将 SQS、Kinesis、DynamoDB Streams 等源到目标的点对点集成通过过滤、转换和丰富实现的无服务器连接服务
概述
Amazon EventBridge Pipes 是一项无服务器服务,可在事件源和目标之间建立点对点连接,并在中间进行过滤、丰富和转换。无需编写轮询逻辑或管理基础设施,只需声明式地定义源、过滤条件、丰富步骤和目标即可构建事件驱动的数据流水线。
源、过滤、丰富、目标的四阶段流水线
EventBridge Pipes 的架构由四个阶段组成。源(Source)是事件的产生端,支持 SQS、Kinesis Data Streams、DynamoDB Streams、Amazon MQ、Apache Kafka 等。过滤(Filter)使用 EventBridge 的事件模式语法,只让匹配条件的事件通过,减少下游处理量。丰富(Enrichment)是可选步骤,可调用 Lambda、Step Functions、API Gateway 或 API Destination 对事件进行补充处理。目标(Target)是事件的最终接收端,支持 Lambda、Step Functions、SQS、SNS、Kinesis、EventBridge 事件总线等多种 AWS 服务。
批处理与错误处理设计
Pipes 支持批量处理源中的事件。可以设置批大小(一次处理的最大记录数)和批窗口(等待收集记录的最大时间)。对于 Kinesis 和 DynamoDB Streams 源,还可以配置并行化因子来增加每个分片的并发处理数。错误处理方面,可以配置重试次数和死信队列(DLQ)。当丰富步骤或目标调用失败时,Pipes 会按配置的重试策略重试,最终失败的事件发送到 DLQ 以便后续分析和重新处理。
事件转换与 InputTemplate 的活用
Pipes 的 InputTemplate 功能允许在将事件传递给目标之前进行转换。可以使用 JSON 路径表达式从源事件中提取特定字段,重新组织数据结构以匹配目标的期望格式。这消除了仅为数据转换而部署 Lambda 函数的需要。例如,可以将 DynamoDB Streams 的 NewImage 格式转换为目标 API 期望的扁平 JSON 结构。结合过滤和转换,许多以前需要 Lambda 胶水代码的集成模式现在可以用纯声明式配置实现。