具有长时间空闲和突然爆发的 aws 工作队列

问题描述

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

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

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

解决方法

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

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

不需要额外费用。我认为您将保留并发性与 provisioned concurrency 混淆

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