#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.