首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda +API-网关在lambda节流时返回502错误

AWS Lambda +API-网关在lambda节流时返回502错误
EN

Stack Overflow用户
提问于 2018-06-19 13:37:48
回答 1查看 8.7K关注 0票数 3

同步调用:如果函数被同步调用并被节流,Lambda返回一个429错误,调用服务负责重试。ThrottledReason错误代码解释您是否遇到了函数级节流阀(如果指定)或帐户级节流阀(请参见下面的注释)。每个服务都可能有自己的重试策略。例如,CloudWatch日志重试失败的批处理最多五次,在两次重试之间出现延迟。有关事件源及其调用类型的列表,请参见受支持的事件源。 参考文献

我不确定我对上面这句话的理解是否正确,如果我错了,请纠正我。

  1. 当一个lambda被节流时,它会将429 Error返回给API-网关。
  2. 调用服务,在这里API网关,重试请求。

然而,它并不像预期的那样起作用。下面是cloudWatch的API网关日志,当一个lambda被节流时。

代码语言:javascript
复制
API-Gateway-Execution-Logs_3f1frvtwe4/sam-sm-test 2a38a4a9316c49e5a833517c45d31070 (bededbf0-73ae-11e8-87a2-f51933ef104f) Endpoint response body before transformations: {"Reason":"ReservedFunctionConcurrentInvocationLimitExceeded","Type":"User","message":"Rate Exceeded."}
API-Gateway-Execution-Logs_3f1frvtwe4/sam-sm-test 2a38a4a9316c49e5a833517c45d31070 (bededbf0-73ae-11e8-87a2-f51933ef104f) Endpoint response headers: {Connection=keep-alive, x-amzn-RequestId=bedfc624-73ae-11e8-bd28-6345cb3606c4, x-amzn-ErrorType=TooManyRequestsException, Content-Length=104, Date=Tue, 19 Jun 2018 10:51:39 GMT, Content-Type=application/json}
API-Gateway-Execution-Logs_3f1frvtwe4/sam-sm-test 2a38a4a9316c49e5a833517c45d31070 (bededbf0-73ae-11e8-87a2-f51933ef104f) Execution failed due to configuration error: Malformed Lambda proxy response

在实际应用中,Lambda返回{"Reason":"ReservedFunctionConcurrentInvocationLimitExceeded","Type":"User","message":"Rate Exceeded."},这是API网关(代理集成)错误的格式,因此,API网关将502 Error返回给客户端调用API。

我想重审失败的请求。我该怎么处理呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 14:22:17

每个服务都可能有自己的重试策略。

API网关不会重新尝试对Lambda的失败调用。如果您想要处理重试,则必须在调用的客户端中完成。

正如您所建议的,当API接收到格式错误的Lambda代理响应时,它将返回一个502错误(参见https://aws.amazon.com/premiumsupport/knowledge-center/malformed-502-api-gateway/)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50929878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档