【问题标题】:AWS Lambda TooManyRequestsException: Rate ExceededAWS Lambda TooManyRequestsException:超出速率
【发布时间】:2016-08-18 00:06:43
【问题描述】:

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

AWS Lambda TooManyRequestsException: Rate Exceeded

我们如何解决这个问题?

【问题讨论】:

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


【解决方案1】:

正如 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 Support 获得响应,因此最好在开发/暂存期间对您的应用程序进行负载测试和请求增加并发调用 您启动您的应用程序之前!

在我们的例子中,从最初的支持请求到增加调用限制需要 45 小时

AWS 支持人员很可爱,感觉就像 ages差不多两天!)才获得服务水平的提升,这将是致命的,如果我们的发布已经公开!

【讨论】:

  • 如果您有一个关键业务公共平台,您肯定会为公司支持合同付费并立即得到响应吗?
  • @geotheory 是的,如果您有一个已经投入生产的 Lambda 并且“BAU”,那么执行人员将看到支付支持合同的好处,但是在开发应用程序在 2016 年被认为是“玩具”。显然现在(在 2019 年)Lambda 和无服务器已被证明很容易获得支持。 :-)
  • 啊。是的,这听起来令人沮丧。
  • 看起来他们现在已经改变了这个:docs.aws.amazon.com/lambda/latest/dg/…
【解决方案2】:

当我将 Reserve 并发设置为低于 100 时,我遇到了这个问题。并使用 aws-sdk 一次发送超过 100 个请求。

事实上,当保留并发相对较低时,任何超过您的并发设置的并发请求(例如,当并发为 20 时发送 21 请求)都会抛出TooManyRequestsException。我不确定是我的帐户问题还是@nelsonic memtioned:默认限制。

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

【讨论】:

    猜你喜欢
    • 2020-11-04
    • 2021-10-12
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2019-06-18
    • 2017-02-28
    相关资源
    最近更新 更多