Подключение к общедоступной базе данных Redshift из Lambda без VPC - PullRequest
0 голосов
/ 17 апреля 2019

В AWS у меня есть настройка API-шлюза, которая вызывает лямбда-функцию, которая в свою очередь обращается к базе данных Redshift. Все эти сервисы находятся в пределах одного VPC и работают. Единственная проблема заключается в том, что каждый вызов API занимает минимум 10 секунд только для раскрутки лямбда-функции внутри VPC.

Из того, что я прочитал, если мы переместим функцию Lambda за пределы VPC, она сможет избежать 10-секундного запуска. Тем не менее, все еще возможно подключиться к db красного смещения в этой точке? База данных красного смещения общедоступна, но нужна ли лямбда-функция VPC для доступа к Интернету / публичной базе данных красного смещения?

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

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

Существует что-то, называемое «холодный старт / теплый вызов с AWS Lambda», время, когда происходит инициализация,Поскольку для инициализации требуется сборка, загрузка кода, сборка контейнера, инициализация контейнера и, в конечном итоге, выполнение кода.

Это хорошо объяснено здесь.

https://blog.octo.com/en/cold-start-warm-start-with-aws-lambda/

"Инициализациявремя лямбды представляет собой значительную часть общего времени. После холодного запуска лямбда будет оставаться экземпляром в течение некоторого времени (5 минут), позволяя любому другому вызову не ждать, пока эта инициализация будет выполняться каждый раз. "

Относительно вашего второго вопроса, если вы положите лямбду наружу, поэтому лучшая практика подсказывает, что «не помещайте лямбду в VPC, если вам не нужно».

https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html

0 голосов
/ 18 апреля 2019

Таким образом, оказалось, что у меня возникла проблема с тайм-аутом для лямбды, соединяющейся с db красного смещения, потому что зона в VPC, в которой находится db красного смещения, не имела таблицы маршрутизации IGW, связанной с ней.Я исправил это, а затем все, что мне нужно было сделать, это удалить лямбду из его виртуального процессора, и все просто заработало.

Короче говоря: убедитесь, что ваша база данных красного смещения имеет публичный доступ в Интернет.

...