У меня есть Flask API, работающий на API Gateway и лямбда-функциях, где мои лямбда-функции настроен для запуска в моем VPC .

Обычная продолжительность для моей лямбда-функции должна составлять около 3 секунд, но иногда она достигает 130 или более секунд, что приводит к тому, что мой API-шлюз возвращает 504.

Лямбда-функция выполняет GET-запрос, используя библиотеку requests:

url = base_url + endpoint
req = requests.get(url, headers=headers)
response = json.loads(req.content.decode('utf-8'))

CloudWatch показывает следующую ошибку в запросе, который истекает:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='host', port=port): Max retries exceeded with url: /foo/bar (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at foo>: Failed to establish a new connection: [Errno 110] Connection timed out'))

Большинство всех постов, которые я прочитал, относятся к неправильно настроенной лямбда-функции, работающей в частной подсети, но я знаю, что это не моя проблема, так как мои функции имеют доступ к Интернету.

Моя другая теория заключается в том, что сеанс повторно используется в базовом контейнере функции, что вызывает тайм-аут.

Заранее спасибо за помощь!

6
Jacob Russell