AWS Lambda TooManyRequestsException:超出率

nel*_*nic 17 rate-limiting amazon-web-services node.js aws-lambda serverless

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

AWS Lambda TooManyRequestsException: Rate Exceeded

我们如何解决这个问题?

nel*_*nic 26

正如指出的迈克尔,这是当你到达文档,你会看到错误消息默认的 " 安全性 " 限制100个并发调用:

" AWS Lambda的默认安全限制为每个区域每个帐户100个并发执行.如果您希望提交请求以增加100个并发执行的限制,您可以访问我们的支持中心 ......"

解决方案是打开支持票据,提供以下信息:

Limit increase request 1 
Service: Lambda 
Region: EU (Ireland) 
Limit name: concurrent requests (average duration * average TPS) 
New limit value: 2000
Run Code Online (Sandbox Code Playgroud)

然后在票证/请求的正文中尝试估计您的使用模式:

Expected average requests per second: 200 
Expected peak requests per second: 2000 
Expected function duration: 2 seconds 
Function memory size: 1000mb 
Invocation Type: Request-response 
Event Source: Api Gateway & Lambda<->Lambda
Run Code Online (Sandbox Code Playgroud)

除非您支付高级支持,否则从AWS Support获取响应可能需要一段时间,因此最好在开发/暂存期间加载测试您的应用程序,并启动应用程序之前请求增加并发调用!

在我们的案例中,从初始支持请求开始需要45个小时才能获得调用限制. AWS-λ-限制-增加请求 AWS-λ-限制请求排序

AWS支持人员很可爱,它只是花了几年时间(差不多两天!)来提高服务水平,如果我们的发布已公开,这将是致命的!