【发布时间】:2021-12-01 06:16:50
【问题描述】:
我正在研究一个解决方案,其中我有一个带有 Lambda 触发器的 SQS 队列。我的理解是Lambda会批量接收消息进行处理,一旦Lambda函数成功,SQS队列中的消息就会被自动删除。但是,我如何只允许删除其中的一些消息?
让我们假设这个用例: Lambda 函数接收一批有 10 条消息,只有 7 条消息有效并且可以处理,其他 3 条消息需要稍后重新处理。
我最初的想法是我可以通过boto3.sqs.change_visibility_timeout 更新 3 条消息中的每条消息的可见性超时,以便在超时后对其进行重新处理,但是,由于整体 lambda 函数执行成功,所有 10 条消息都将从 SQS 队列中删除。
有什么建议吗?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sqs