Время ожидания запроса от AWS Lambda - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь создать приложение с serverless framework.

Все функции на моем локальном компьютере работают нормально.

Но удаленная машина (Lambda) выдает ниже сообщение об ошибке. (Это займет 30 секунд)

{
    "message": "Endpoint request timed out"
}

Размер кода 37.5 MB, а объем памяти экземпляра 3008 MB.

Буду признателен за любой совет или предложение. Заранее спасибо

1 Ответ

0 голосов
/ 15 ноября 2018

Я решил свои проблемы с установленным на callbackWaitsForEmptyEventLoop = false.

По умолчанию вызов функции callback () в лямбда-функции NodeJS не завершает выполнение функции. Он будет продолжать работать до тех пор, пока цикл событий не станет пустым. Распространенная проблема, связанная с тем, что функции NodeJS Lambda продолжают работать после вызова обратного вызова, возникает, когда вы держитесь, чтобы открыть соединения с базой данных. Вы не опубликовали никакого кода, поэтому я не могу дать конкретные рекомендации, но вам нужно будет определить, оставляете ли вы соединения с базой данных открытыми в вашем коде или что-то подобное.

Вот что документация говорит о поведении callbackWaitsForEmptyEventLoop:

callbackWaitsForEmptyEventLoop

Значением по умолчанию является true. Это свойство полезно только для изменения поведение по умолчанию обратного вызова. По умолчанию обратный вызов будет ждать пока цикл событий времени выполнения Node.js не станет пустым, прежде чем заморозить обработать и вернуть результаты вызывающей стороне. Вы можете установить это свойство false, чтобы запросить AWS Lambda, чтобы заморозить процесс в ближайшее время после вызова обратного вызова, даже если в событии есть события петля. AWS Lambda остановит процесс, любые данные о состоянии и события в цикле событий Node.js (любые оставшиеся события в событии цикл обрабатывается при следующем вызове лямбда-функции и если AWS Лямбда выбирает использовать замороженный процесс). Для получения дополнительной информации о обратный вызов, см. Использование параметра обратного вызова .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...