繁体   English   中英

间歇性内部服务器错误 - API 网关上的 StatusCode 500 调用 Lambda

[英]Intermittent Internal Server Error - StatusCode 500 on API Gateway calling Lambda

I have a REST API in AWS API Gateway that invokes a Python Lambda function and returns some result. 大多数情况下,此工作流程运行良好,这意味着 Lambda function 被执行并将结果传递回 API,后者又返回 200 OK 响应。

但是,有几次我从 API 和 Lambda 得到 500 错误代码似乎甚至没有被执行。 response.reason说:“内部服务器错误”并且没有提供其他信息。

API的失败请求和成功请求在方法或参数格式方面没有区别。

还有一条评论是 API 启用了缓存设置。 I've seen similar posts and some of the answers mention the format of the JSON object returned by the Lambda function, others point to IAM permissions issues, but none of those seem to be the cause here. 事实上,正如这篇文章的标题所说,这是一种间歇性行为:大多数时候它工作正常,但偶尔我会收到这个错误。

任何提示将不胜感激。

我有同样的问题,在我的情况下,我必须在 API 网关阶段启用记录完整请求/响应数据以及 INFO 日志才能看到以下日志:

(xxx) Endpoint response body before transformations: 
{
    "Type": "Service",
    "message": "INFO: Lambda is initializing your function. It will be ready to invoke shortly."
}

在我的情况下,问题与 lambda 处于非活动状态 state 的事实有关, 如果 function 保持空闲数周,则会发生这种情况。

我有同样的问题,我怀疑超时可能是由于 lambda 达到其 memory 限制。

我已将 memory 限制设置为下一个等级(128 -> 512)并将超时时间增加到 10 秒(默认为 3),现在我可以看到超时时间了。 我目前仍然有问题,但现在我可以进行调查。

我希望这对你有帮助。

我通过 HTTP API 集成看到了这一点。 它是间歇性的,在向 Lambda 添加预置并发时,它似乎有所改善。 例如,在具有 4 到 10 个并发实例但通常徘徊在 4 到 8 个范围内的 Lambda 上,购买 5 到 6 个预置并发实例有助于减少甚至可能消除这 500 个错误。

我仍在监视他们是否永远消失了。 这些错误的频率随着预置的实例而急剧下降。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM