EventBridge 管道 FIFO SQS 目标的动态且唯一的 MessageGroupId

问题描述 投票:0回答:1
  • 我已将 EventBridge Pipe 目标设置为 FIFO SQS 队列

  • FIFO SQS 有一个 Lambda 触发器,可以“批量处理 1 条”消息(对于我的用例,由于一些严格的限制,我需要一次处理 1 条消息)

  • 我已经调整了SQS属性(visibilityTimeout、延迟等),但注意到在多种情况下,在SQS上,messageSent(通过管道推送到SQS的项目)是正确的,但lambda没有被触发,因此messageReceive计数与已发送的消息不同。更糟糕的是,消息在队列中不再可用,在 DLQ 中也不再可用。我读到,由于 AWS SQS 的分布式特性,这是事件“数量较少”的 SQS 队列的问题。

  • 但是,我的一个建议是确保从 Pipe 生成并发送到 SQS 的每条消息都应具有唯一的 MessageGroupId。但 EventBridge 似乎不允许唯一或动态值...您必须硬编码相同的静态值。 (见下文)

enter image description here

这也是 3 年前的一个问题,但我希望这个问题能得到解决?

    有谁知道如何使管道中的 MessageGroupId 动态化(使用源中的唯一值/uuid)/唯一?
  1. 如果仍然不可能,我可以使用哪种架构与 Pipe 一起添加另一个层,该层可以在发送到 FIFO SQS 之前处理和添加唯一的 MessageGroupId?
非常感谢!

amazon-web-services amazon-sqs aws-event-bridge
1个回答
0
投票
您可以使用 JSONPath 使用负载的元素动态设置消息组 ID。以下是一些信息:

https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-event-target.html#pipes-targets-dynamic-parms

我担心消息被丢弃......这看起来确实不对。您能否请 AWS 支持人员看一下?如果您无法联系支持团队,请私信我,我们将共同解决这个问题。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.