通过 Amazon EventBridge Pipes 实现事件集成 - 源与目标的连接模式
介绍将 SQS、DynamoDB Streams、Kinesis 等事件源与目标直接连接,并在中间插入过滤和丰富处理的设计模式。
Pipes 的连接模式
EventBridge Pipes 是一项以点对点方式连接事件源和目标的服务。以往将 SQS 队列的消息传递给 Step Functions 需要创建 Lambda 函数,而 Pipes 可以直接连接源和目标。支持的源包括 SQS、Kinesis Data Streams、DynamoDB Streams、Amazon MSK 和自管理 Kafka,目标支持 EventBridge 总线、Step Functions、Lambda、API Gateway、SNS、SQS 等众多服务。通过批处理大小和并发设置来控制吞吐量。
过滤与丰富处理
过滤使用 EventBridge 的事件模式语法,仅让符合特定条件的事件通过管道。可以实现从 DynamoDB Streams 中仅提取 INSERT 事件、仅处理 SQS 消息中特定字段超过阈值的消息等控制。丰富处理步骤将过滤后的事件发送到 Lambda 函数或 API Gateway 端点,进行外部数据附加或格式转换。输入转换器通过指定事件的 JSON 路径映射到目标期望的结构,实现无代码的数据转换。
源与目标的组合
Pipes 的源支持 SQS、Kinesis Data Streams、DynamoDB Streams、MSK、MQ 和自管理 Kafka。目标支持 Step Functions、Lambda、ECS 任务、EventBridge 总线、API Gateway、SNS、SQS 等 15 种以上的服务。在丰富处理步骤中调用 Lambda 或 API Gateway,为事件数据附加外部信息后再分发到目标。通过输入转换器转换事件结构,整理为目标期望的格式。 如需全面学习事件集成架构,请参考技术书籍 (Amazon)。
Pipes 的定价
EventBridge Pipes 按请求数计费,每 64 KB 块约 0.40 美元/100 万请求。通过过滤缩减分发到目标的事件,可降低目标端的处理成本(Lambda 执行次数、Step Functions 状态转换)。丰富处理中的 Lambda 调用会另外产生 Lambda 标准费用。与不使用 Pipes 而用 Lambda 编写胶水代码相比,可降低 Lambda 的执行成本和维护成本。
总结
EventBridge Pipes 通过直接连接事件源和目标,减少了胶水代码的 Lambda。从 SQS、Kinesis、DynamoDB Streams 等 6 种源连接到 15 种以上的目标,通过过滤和丰富处理执行事件的筛选和加工。通过输入转换器转换为目标期望的格式,大幅降低集成代码的维护成本。