【发布时间】:2022-04-07 22:28:15
【问题描述】:
我在 AWS API Gateway 中有一个 REST API,它调用 Python Lambda 函数并返回一些结果。 大多数情况下,此工作流运行良好,这意味着执行 Lambda 函数并将结果传递回 API,然后返回 200 OK 响应。
但是,有几次我从 API 收到 500 错误代码,而 Lambda 似乎甚至没有被执行。 response.reason 说:“内部服务器错误”并且没有给出额外的信息。
对于API的失败请求和成功请求在方法或参数格式方面没有区别。
还有一条评论是 API 启用了缓存设置。 我看过类似的帖子,其中一些答案提到了 Lambda 函数返回的 JSON 对象的格式,另一些则指向 IAM 权限问题,但这些似乎都不是原因。事实上,正如这篇文章的标题所说,这是一种间歇性行为:大多数情况下它工作正常,但偶尔会出现此错误。
任何提示将不胜感激。
【问题讨论】:
-
您可以在 api Gateway 上启用日志记录并检查日志,它应该可以让您对问题有所了解。
-
@PankajYadav 实际上我这样做了,我同时启用了 CloudWatch Logs 和 Access Logging,但它们都没有提供额外的信息。令人惊讶的是,与导致错误的 API 请求对应的日志条目甚至看起来都不像错误。
-
您在 lambda 函数中使用异常处理,对吧?
-
没错,这就是我对错误代码的认识。事实上,自从我第一次发帖以来,我收到了一些额外的错误,例如:
('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))或<Response [502]>和<Response [503]>等等。
标签: amazon-web-services aws-lambda aws-api-gateway