我有一个由 FIFO SQS 触发的 lambda 函数。队列有 50,000 条消息需要处理,但我只想每小时处理 200 条。我该怎么做?这是一个更多关于解决方案架构的问题,而不是关于代码本身的问题。
谢谢你
当然,可以通过几种不同的方式来控制从 SQS 队列处理消息的速率。考虑到您的限制(Lambda 函数、FIFO SQS 和特定速率),这里有一个架构解决方案:
使用SQS可见性超时:
预定的 Lambda 函数:
并发 Lambda 执行:
此方法可确保您每小时处理大约 200 条消息。根据 CloudWatch 事件的确切时间和 Lambda 执行时间,可能会出现微小的变化,但它应该接近您所需的速率。