相关疑难解决方法(0)

AWS Lambda TooManyRequestsException:超出率

当尝试执行Amazon Web Services(AWS)Lambda函数(多次)时,我们看到了错误:

AWS Lambda TooManyRequestsException: Rate Exceeded

我们如何解决这个问题?

rate-limiting amazon-web-services node.js aws-lambda serverless

17
推荐指数
1
解决办法
1万
查看次数

并行多次调用 lambda 似乎是在 50 个并发批次中执行,而不是使用更高指定的保留并发数

TL;DR 对于并行执行的一批 500 个 lambda,我观察到它们以 50 个并发批次执行,尽管指定的保留并发度为 500。这是为什么?

你好,

我是 AWS lambda 新手,无法理解我所看到的并发行为。

我正在调用一个 lambda 函数“calc-group”[从 AWS Web 界面或 CLI],它并行调用另一个 lambda 函数“calc-number”500 次,其中后者指定了 500 的保留并发度。运行,计算结果一切正常】。

“calc-number”大约需要 1s 执行,但“calc-group”需要 10s 执行。并发执行图表表明我得到的并发数仅为 50,与我看到的 10 倍时间一致。 [注意:“calc-number”的更详细实现(此处未显示)也证明只有 50 个 lambda 执行上下文从每个顺序处理 10 个请求开始]。

我正在使用Promise.all承诺进行同步lambda.invoke调用。

我已阅读https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.htmlhttps://docs.aws.amazon.com/lambda/latest/dg/inspiration-scaling.html但不明白发生了什么。

下面是一个隔离行为的精简示例。 [注意:我知道这里的内存比所需的要高得多,但它使计时更加稳定,并且原始代码受 CPU 限制,受益于此设置]。

我非常感谢任何关于如何让所有 500 个并行执行的建议......

非常感谢!

编辑:简化了代码,阅读了有关异步 Node.js 处理程序中的错误处理的更多信息 + 较小的整理

编辑:仅供参考,如果我并行地重复调用 calc-group,则 calc-number 的并发执行会成比例增加。例如,如果我并行调用 calc-group 5 次(我从 CLI 进行测试),那么我会看到 calc-number 有 250 个并发执行,尽管发出并执行了 2500 个请求。(超过 …

amazon-web-services node.js aws-lambda

3
推荐指数
1
解决办法
3276
查看次数