Тайм-аут подключения Dynamodb внутри lambda

#amazon-web-services #aws-lambda #amazon-dynamodb

#amazon-web-services #aws-lambda #amazon-dynamodb

Вопрос:

У меня есть лямбда-функция, которая выполняется каждые 30 секунд (пошаговая функция выполняет 2 вызова lambda с таймаутом 30 секунд каждую минуту). Он считывает некоторые данные (около 90 элементов) из dynamodb. И иногда это бросает меня ConnectTimeoutError , и я не могу понять, почему (сегодня lambda выдавала мне эти ошибки в течение 3 часов каждые 30 секунд, а затем снова начала корректно работать)

Таблица имеет On demand емкость. Среда выполнения Lambda: python3.8

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

Комментарии:

1. Есть ли у вас лямбда-функция, настроенная для запуска в VPC?

2. @MarkB Да, он работает в VPC

Ответ №1:

Некоторые из подсетей VPC, для использования которых настроена ваша лямбда-функция, либо не имеют маршрута к шлюзу NAT, либо маршрута к конечной точке DynamoDB VPC. Для каждой подсети, в которой он работает, потребуется определить один из этих двух маршрутов.

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

Комментарии:

1. Спасибо. Это сработало, ConnectionTimeout чтобы dynamodb исчез. Но теперь по какой-то причине запускаются неудачные (не очень часто) запросы на другой веб-ресурс (не связанный с aws), но, возможно, проблемы на их стороне

2. Если он выполняется в VPC, а также требует доступа к внешним ресурсам в Интернете, убедитесь, что функция Lambda развертывается ТОЛЬКО в подсетях с маршрутом к шлюзу NAT.