AWS Lambda TooManyRequestsException:超出率

时间:2016-04-24 17:11:53

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

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

  

AWS Lambda TooManyRequestsException: Rate Exceeded

我们如何解决这个问题?

2 个答案:

答案 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-lambda-limits-increase-request aws-lambda-limits-request-sorted

AWS支持人员很可爱,它只是感觉像年龄差不多两天!)来获得服务水平增加,如果服务水平增加将是致命的我们的发布已经公开了!

答案 1 :(得分:0)

当我将保留并发设置为100以下时,我遇到了这个问题。并使用.lower()一次发送了100个以上的请求。

实际上,当保留的并发程度相对较低时,在您的并发设置上的任何并发请求(例如,当并发为20时发送21个请求)都将被丢弃aws-sdk。我不确定是我的帐户问题,还是不确定@nelsonic:默认限制。

但是当我将并发数增加到不小于100时,如果行不通,请继续增加,然后问题就解决了。希望这会有所帮助。