amazon-web-services - 为什么“reservedConcurrency”不限制并发飞行消息的数量?
问题描述
我试图限制并行运行的并发函数的数量。正如您在我的 serverless.yml 中看到的,我的 lambda 触发器是 SQS 队列中的一条消息:
receiver:
handler: src/receiver.handler
timeout: 30
events:
- sqs:
arn: ${queueArn}
batchSize: 1
reservedConcurrency: 1
我使用“reservedConcurrency: 1”将并发执行次数限制为 1。我在 AWS UI 中验证了函数“receiver”配置,并且“reserve concurrency”也设置为 1。
不确定我缺少什么,因为我仍然看到从我的日志和 AWS SQS UI 运行的数百次执行。
解决方案
SQS/Lambda 集成不适用于低于 5 的预留并发。
如果您在函数上配置保留并发,请设置至少 5 个并发执行,以减少 Lambda 调用您的函数时出现限制错误的机会。
进行中的消息不仅是 Lambda 函数当前正在处理的消息。它还包括由于 Lambda 函数上可用的并发性不足而失败并返回队列的消息——它们在尝试的过程中将处于运行状态,即使大多数尝试都会失败。如果您将保留并发设置为 0,您应该会发现所有处理都停止了,但仍有一些消息在传输中,因为仍在尝试处理。
推荐阅读
- c# - 如何将 UnitySendMessage 调用到接口方法
- python - Python [Pandas/docx]:根据通用名称合并两行
- json - 如何从获取的 JSON 对象中获取值并在反应中显示它
- reactjs - 如何对地图中的复选框做出反应?
- javascript - 在打字稿中定义对象并访问它的值的最佳方法是什么?
- python - Discord 客户端错误:“NoneType”对象没有“发送”属性
- java - 如何解决“javax.persistence.PersistenceContext 与签名者信息不匹配”问题?
- java - 在 Android Studio 中为 AlarmManager 设置日期和时间
- c# - .NET 框架版本 4.7.2 与 Microsoft.Net.Httpclient NuGet 包不兼容
- python - 使用 OpenCV 裁剪多边形会旋转多边形