如何解决Lambda超时时间为29秒,无法在CloudWatch日志中找到请求ID
我是AWS和Node的新手,所以我非常感谢大家对此的建议。最近在我的系统中,发生了一些奇怪的事情。有时(每月〜20次),lambda请求超时。这只是中间件中用于身份验证的简单请求(我正在使用无服务器的node.JS)。问题是我无法从API网关跟踪此请求。抱歉,我很想解释事情,所以我要这样说:
我的系统流程:CloudFront-> API网关-> Lambda-> RDS
通常,如果我想跟踪请求: 我从Lambda的日志中获取了requestID
并在API网关的日志中搜索它:
但是对于这些超时请求:
我在API网关的日志中什么都找不到:
就像它突然出现一样...请帮助并感谢您的建议。
解决方法
您可能已经知道,但是API Gateway has a hard max timeout limit of 29 seconds并在此之后停止等待集成响应。
您要从lambda日志中提取的请求ID是lambda请求ID。这有点猜测,但是我猜想是因为Lambda花费了超过29秒的时间,并且由于API Gateway超时并停止等待而从未返回API Gateway,所以API Gateway从未收到Lambda函数的响应来知道lambda是什么请求ID为。
此调用仍然应该有一些API网关日志,但是它不会包含任何正常的集成响应日志行,因为它从未收到过来自lambda集成的响应。
由于这是网关超时时的响应代码,因此请尝试在API网关日志中搜索504
。
或者正如AADProgramming推荐的那样,X Ray服务旨在帮助用户跟踪许多服务中的请求,因此在此处启用该功能将很有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。