aws lambda 上的保留并发不会阻止 lambda 进行更多扩展?

Posted

技术标签:

【中文标题】aws lambda 上的保留并发不会阻止 lambda 进行更多扩展?【英文标题】:Reserved concurrency on aws lambda does not prevent lambda to scale more? 【发布时间】:2022-01-22 17:55:31 【问题描述】:

我每天安排的任务会触发大约 10k 个 lambda 函数,用于我需要维护的 10k 条记录。我正在使用 SQS 对所有这些消息进行排队,并且我想将执行分散在几个小时内。所以我将保留并发设置为仅 3 个并发调用。但是,当该计划任务遇到该 lambda 函数的并发调用时,仍然会超过 3。有关如何执行此操作的任何建议? 当我检查 lambda 配置时,它显示保留并发为 3。但在监视并发调用时显示超过 3。

【问题讨论】:

你能显示指标的截图吗? 在这里,它上升到 40,总消息数约为 6k,但它可以上升到 10-15k,这可能会增加并发调用的数量,我需要防止这种情况。 图表是否偶然显示总和而不是一段时间内的平均值? 抱歉,这里是并发调用的平均指标(图 3)。 但它仍然超过 3,任何建议可能导致它? 【参考方案1】:

将 SQS 与 Lambda(配置了并发限制)一起使用总是棘手,因为简而言之,它不会起作用,相反,您会得到一些限制记录,因为 lambda 无法处理受限制的消息并发。

您可以查看这篇解释原因和解决方法的文章: https://zaccharles.medium.com/lambda-concurrency-limits-and-sqs-triggers-dont-mix-well-sometimes-eb23d90122e0

查看此 AWS 文档以获取有关此主题的更多信息 https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-queueconfig

【讨论】:

以上是关于aws lambda 上的保留并发不会阻止 lambda 进行更多扩展?的主要内容,如果未能解决你的问题,请参考以下文章

AWS lambda 和 Java 并发

如何绕过 AWS Lambda 大小限制

为 Scala AWS Lambda 使用 Proguard

AWS lambda 调用不调用另一个 lambda 函数 - Node.js

在 AWS lambda 上运行 graphql 应用程序

通过AWS lambda存储值