smo*_*fun 7 amazon-web-services node.js aws-lambda aws-api-gateway
由于 AWS Lambda 上的 NodeJS 8.x 运行时已停产,我们将 REST API 的暂存环境移至 NodeJS 12.x。
现在我们注意到,在某些随机时间,从前端 Web 应用程序到 API 网关的请求会以 502 失败。通常这种情况发生在 API 空闲一段时间(几分钟)之后。这主要发生在 OPTIONS 或 HEAD 请求中,但这可能是因为它是空闲时间后的第一个请求。对 API 的任何后续请求都可以正常工作。即使您刷新网站,所有请求都可以顺利通过。
我在 Lambda 上找不到任何日志。
API网关日志:
"error": "Internal server error", "ErrorDetail": " "Internal server error"", "errorValidation": "-", "errorResponseType": "INTEGRATION_FAILURE"
Run Code Online (Sandbox Code Playgroud)
我们在 rumtime NodeJS 10.x 上也遇到了同样的问题,但在 NodeJs 8 上没有。
谢谢你的帮助!
看起来我们发现了这个错误——它在代码中。:)
一段时间后,我们在 Cloud Watch 上发现 Lambda 日志与 API Gateway 的日志匹配,并且看到一些数据库超时。我们仍在调查细节,但问题出在用于日志记录的快速中间件上。
即使在 OPTIONS 和 HEAD 请求上并且在确保数据库连接处于活动状态之前,它也会访问数据库。该问题可能与数据库套接字超时和 Lambda 寿命有关。然而,围绕日志中间件的简单 try-catch 显然解决了这个问题。
我们仍然不确定为什么 Node 8 的生产中没有发生错误。流量可能足够高以保持数据库连接打开。
谢谢大家的帮助。
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |