当尝试执行Amazon Web Services(AWS)Lambda函数(多次)时,我们看到了错误:
AWS Lambda TooManyRequestsException: Rate Exceeded
我们如何解决这个问题?
答案 0 :(得分:24)
正如 Michael 所述,这是您在到达记录的default "safety" limit of 100 concurrent invocations后会看到的错误消息:
“ 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
然后在故障单/请求的正文中尝试估计您的使用模式:
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
可以从AWS支持部门获取响应,除非您支付高级支持,因此最好在开发/暂存期间加载测试您的应用请求增加并发调用 ,然后启动您的应用!
在我们的案例中,从初始支持请求开始 45小时以获得调用限制增加。
AWS支持人员很可爱,它只是感觉像年龄(差不多两天!)来获得服务水平增加,如果服务水平增加将是致命的我们的发布已经公开了!
答案 1 :(得分:0)
当我将保留并发设置为100以下时,我遇到了这个问题。并使用.lower()
一次发送了100个以上的请求。
实际上,当保留的并发程度相对较低时,在您的并发设置上的任何并发请求(例如,当并发为20时发送21个请求)都将被丢弃aws-sdk
。我不确定是我的帐户问题,还是不确定@nelsonic:默认限制。
但是当我将并发数增加到不小于100时,如果行不通,请继续增加,然后问题就解决了。希望这会有所帮助。