Nest Js on AWS Тайм-аут запроса Lambda Endpoint - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть приложение Nest. js ', размещенное на AWS Lambda с использованием безсерверного cli.

при попытке получить доступ к конечной точке я получаю {"message": "истекло время ожидания запроса к конечной точке"}. Я попытался увеличить время, но ошибка не исчезла.

Как мне решить эту проблему?

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

1 Ответ

0 голосов
/ 13 февраля 2020

Причина, по которой он не работает для вас, заключается в том, что, хотя лямбда поддерживает вывод времени до 15 минут, шлюз API имеет ограничение в 29 секунд. Это означает, что шлюз API не может ждать более 29 секунд для возврата лямбды.

Если вам требуется более 29 секунд, вам следует рассмотреть возможность разработки API с помощью какого-либо другого механизма, не включающего шлюз API, такого как express framework.

Я хотел бы предложить вам Сначала попытайтесь выяснить, какая часть кода занимает больше времени для выполнения. Вы можете попробовать и оптимизировать код, прежде чем переходить на альтернативы.

Надеюсь, это поможет.

Ссылка:

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

...