AWS Lambda 出现神秘的 500 错误;无法调试

问题描述 投票:0回答:2

我有一个使用 Lambda (nodejs) 和 API 网关托管的 API。我正在使用无服务器来部署。

总体来说一切都很好,但是当我今天处理特定功能时,我在访问端点时开始收到 HTTP 500 错误。然而,虽然端点仍然有 API 网关访问日志,但没有受到攻击的 lambda 函数的 Cloudwatch 日志。我能够验证授权者是否已成功命中,并且未返回任何问题(如果是,则为 401)。使用 CLI 工具从命令行调用该函数后,500 错误消失,我能够再次成功访问端点。

以前有人遇到过这种情况吗?如果我错过了调试步骤,我真的很想知道。真正令人担忧的是,我的 API 可能会生成 500 个错误,但没有书面记录来帮助我了解发生了什么。

amazon-web-services aws-lambda aws-api-gateway amazon-cloudwatch
2个回答
0
投票

您可以检查您的角色和权限,此链接可以帮助您https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-lambda-stage-variable-500/

您还可以使用 X-ray 进一步调试:https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html


0
投票

我遇到了完全相同的问题,即授权程序成功运行,但请求返回 500 错误,而没有实际命中目标端点 lambda。经过一番尝试和错误后,我发现它的发生是由于授权者生成的 IAM 策略的“上下文”部分包含基于数组和对象的属性。一旦我用字符串值替换了上下文中的数组和对象属性,它就像一个魅力。

© www.soinside.com 2019 - 2024. All rights reserved.