使用 AWS SQS FIFO 队列保留 FIFO 处理作为 lambda 触发器事件源和 Step 函数处理

Preserve FIFO processing with an AWS SQS FIFO Queue as a lambda trigger event source and Step function processing

是否可以通过配置设置一个附加了 lambda 触发器的 SQS FIFO 队列,以使用 lambda 调用步进函数,同时在整个处理过程中保持顺序?因此,这意味着不会在 运行 状态下并行触发多个步进函数,而是保留 FIFO 处理,因此任何新的步进函数执行都需要等到步进函数完成,然后才能处理下一批记录。

这是我可以通过配置实现的还是需要另一条路径?

如果您使用 SQS 和 Lambda 之间的内置集成,我认为这是不可能的 - 一旦您的函数执行退出(一旦它完成启动步骤函数,就会退出), AWS Lambda 将获取下一条消息。

如果您的执行时间比较短,并且您愿意为Lambda 执行时间付出代价,您可以在您的Lambda 函数中轮询或等待Step Function 完成后再返回。但是,如果您要处理大量消息或您的 Step 函数需要一些时间才能完成,这可能会很昂贵。