Лямбда начинает тайм-аут при общении с DynamoDB - PullRequest
0 голосов
/ 09 января 2019

У меня есть база лямбда-кода Node.js, которая взаимодействует с небольшим набором данных в DynamoDB (менее 400 байт каждый). Время от времени функция отключается в течение 5 минут при выполнении запроса get() к DynamoDB (через dynamoDbdAWS.DynamoDB.DocumentClient();).

Проблема в том, что эта проблема возникает совершенно случайно, но когда она работает, от холодного старта требуется ~ 2 секунды, поэтому запуск в течение 5 минут не имеет смысла и в случайных точках.

  • Это среда разработки, так что только я использую это, и я делаю, может быть, 10 запросов в день
  • context.callbackWaitsForEmptyEventLoop = false; установлено
  • Выделение памяти никогда не превышает 45 МБ (установлено 128 МБ)
  • Я тестирую прямо в Lambda
  • Код развертывается через Без сервера
  • При тестировании с использованием Serverless локально работает, пока Lambda не работает

Я унаследовал этот проект, но хорошо разбираюсь в архитектуре вокруг него, и он довольно прост, но я раньше не делал много работы с Lambda.

Любые идеи о том, что мне следует искать, или о любых известных проблемах очень помогут.

1 Ответ

0 голосов
/ 09 января 2019

Похоже, что одна (или несколько) подсетей VPC, в которых настроена функция Lambda, не имеет маршрута к шлюзу NAT (или конфигурации AWS PrivateLink ). Таким образом, всякий раз, когда эта подсеть используется функцией Lambda, она не может получить доступ к API AWS.

Если функции Lambda на самом деле не требуется доступ к каким-либо ресурсам в VPC, то гораздо лучше вообще не настраивать ее на использование VPC.

...