AWS Lambda TooManyRequestsException:超出速率
AWS Lambda TooManyRequestsException: Rate Exceeded
尝试执行 Amazon Web Services (AWS) Lambda 函数时(多次)我们看到错误:
AWS Lambda TooManyRequestsException: Rate Exceeded
我们如何解决这个问题?
正如 Michael 所指出的,这是当您到达记录的 default "safety" limit of 100 concurrent invocations:
时您将看到的错误消息
"AWS Lambda has a default safety throttle of 100 concurrent executions per account per region. If you wish to submit a request to increase the throttle of 100 concurrent executions you can visit our Support Center..."
解决方案是打开一个提供以下信息的支持票:
Limit increase request 1
Service: Lambda
Region: EU (Ireland)
Limit name: concurrent requests (average duration * average TPS)
New limit value: 2000
然后在 ticket/request 的正文中尝试 估计 您的使用模式:
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
可能需要 while 才能从 AWS Support 获得响应,除非您支付 premium support,所以最好加载在 development/staging 期间测试您的应用程序并请求 增加并发调用 在您启动您的应用程序之前 !
在我们的案例中,从最初的支持请求到提高调用限制花费了 45 小时。
AWS 支持人员很可爱,只花了 岁 (将近两天 !)就达到了服务水平增加,如果我们的发布是 public!
,那将是致命的
我将 Reserve concurrency 设置为低于 100 时遇到了这个问题。并使用 aws-sdk
一次发送超过 100 个请求。
事实上,当预留并发比较低的时候,任何超过你的并发设置的并发请求(比如并发为20时发送21请求)都会被抛出TooManyRequestsException
。我不确定是我的帐户问题还是@nelsonic 提到的:默认限制。
但是当我的并发数不低于100时,如果不行,继续增加,问题就解决了。希望这可以帮助。
尝试执行 Amazon Web Services (AWS) Lambda 函数时(多次)我们看到错误:
AWS Lambda TooManyRequestsException: Rate Exceeded
我们如何解决这个问题?
正如 Michael 所指出的,这是当您到达记录的 default "safety" limit of 100 concurrent invocations:
时您将看到的错误消息"AWS Lambda has a default safety throttle of 100 concurrent executions per account per region. If you wish to submit a request to increase the throttle of 100 concurrent executions you can visit our Support Center..."
解决方案是打开一个提供以下信息的支持票:
Limit increase request 1
Service: Lambda
Region: EU (Ireland)
Limit name: concurrent requests (average duration * average TPS)
New limit value: 2000
然后在 ticket/request 的正文中尝试 估计 您的使用模式:
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
可能需要 while 才能从 AWS Support 获得响应,除非您支付 premium support,所以最好加载在 development/staging 期间测试您的应用程序并请求 增加并发调用 在您启动您的应用程序之前 !
在我们的案例中,从最初的支持请求到提高调用限制花费了 45 小时。
AWS 支持人员很可爱,只花了 岁 (将近两天 !)就达到了服务水平增加,如果我们的发布是 public!
,那将是致命的我将 Reserve concurrency 设置为低于 100 时遇到了这个问题。并使用 aws-sdk
一次发送超过 100 个请求。
事实上,当预留并发比较低的时候,任何超过你的并发设置的并发请求(比如并发为20时发送21请求)都会被抛出TooManyRequestsException
。我不确定是我的帐户问题还是@nelsonic 提到的:默认限制。
但是当我的并发数不低于100时,如果不行,继续增加,问题就解决了。希望这可以帮助。