首页 > 解决方案 > 长时间空闲和突然爆发的aws工作队列

问题描述

我正在尝试实现一个工作队列来处理消息突发。每隔几天/几周,我就会收到大约 5,000 条消息,需要在合理的时间内处理(每条消息可以在大约 1-2 分钟内处理)。理想情况下,如果我可以同时运行 5,000 个 lambda,整个过程应该需要 1-2 分钟,但我的帐户限制为 1,000 个并发 lambda。

我打算创建一个 SQS 作为 lambda 的事件源,但我看不到任何节流机制?我可以在 lambda 上设置保留并发,但它会从我的帐户限制中扣除,并且让那些 lambda 空闲以应对每几周仅发生一次的事件听起来“昂贵”。

有没有办法限制 SQS?或者我可能需要选择其他服务来实现这样的队列?

标签: amazon-web-servicesaws-lambdamessage-queueamazon-sqsthrottling

解决方案


在这种情况下,保留并发是限制可以同时运行的 lambda 函数数量的方法:

保留并发 - 保留并发创建一个只能由其函数使用的请求池,并且还阻止其函数使用非保留并发

不需要额外费用。我认为您将保留并发与预置并发混淆了:

启用后,预置并发使函数保持初始化并准备好在两位数毫秒内响应。


推荐阅读