AWS Lambda Endpoint 请求上的 NestJs 超时



我有一个使用无服务器cli托管在AWS Lambda上的Nest.js'应用程序。

当我尝试访问端点时,我收到{"消息":"端点请求超时"}。我试图增加时间,但错误仍然存在。

我该如何解决这个问题?

serverless.yml

name: aws
runtime: nodejs12.x
stage: prod
profile: default # Config your AWS Profile
timeout: 120
environment: # Service wide environment variables
NODE_ENV: production
plugins:
- serverless-offline
- serverless-plugin-warmup
custom:
# Enable warmup on all functions (only for production and staging)
warmup:
enabled: true
package:
exclude:
- .git/**
- src/**
- test/**
- nodemon.json
- README.md
excludeDevDependencies: true
functions:
index:
handler: dist/serverless.handler
events:
- http:
cors: true
path: '/graphql'
method: any

它不适合您的原因是,即使 lambda 最多支持 15 分钟的时间输出,API 网关的限制为 29 秒。这意味着 API 网关等待 lambda 返回的时间不能超过 29 秒。

如果您需要超过 29 秒,您应该考虑通过其他一些不涉及 API 网关的机制(例如 express 框架(开发 API。

我建议您首先尝试找出代码的哪一部分需要更长的时间来执行。在选择替代方案之前,您可以尝试优化代码。

希望这有帮助。

参考:

https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html

最新更新