我有一个 SQS 队列,用作 Lambda 函数的事件源。由于数据库连接限制,我将 Lambda 函数的最大并发数设置为 5。
正常情况下,一切正常,但是当我们需要进行更改时,我们故意禁用SQS触发器。消息开始按预期备份在 SQS 队列中。
重新启用触发器时,会实例化 5 个 Lambda 函数,并开始处理队列中的消息,但我也看到 CloudWatch 告诉我 Lambda 受到限制。
请有人解释一下为什么会发生这种情况?我希望可用的 Lambda 函数能够尽可能快地处理积压的工作,并且不会因为队列而出现限制。
最佳答案
这是预期的行为。
“达到与函数关联的并发限制后,对该函数的任何进一步调用请求都会受到限制,即该调用不会执行您的函数。每个受限制的调用都会增加该函数的 Amazon CloudWatch Throttles 指标”
https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html
关于amazon-web-services - 为什么从 SQS 调用时 Lambda 会受到限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54599015/