Какова лучшая практика для нескольких AWS Lambdas, потребляющих внешний (EC2) Postgres - PullRequest
0 голосов
/ 27 сентября 2018

У меня +100 конечных точек в AWS API, каждая из которых вызывает определенный Lambda-скрипт, который подключается к внешней базе данных Postgres, которая извлекает данные и возвращает их.

Мой вопрос заключается в том, если я это сделаю100 Lambdas-скриптов, должны ли в каждом содержаться детали соединений в качестве переменных среды?

Это, вероятно, не способ сделать это ... каков наилучший способ управлять этим в одном месте, например, глобальные переменные среды, которые могут быть доступны для всех лямбд?

Другое дело, что каждое лямбда-соединение тоже плохо работает, есть ли способ управлять пулом соединений, который можно разделить между другими лямбдами?

Есть ли способ их сгруппировать?

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Рекомендованным способом хранения секретной конфигурации для доступа к сервисам AWS, таким как функции Lambda, является Secrets Manager .Сведения о соединении хранятся в виде секрета, и в каждом коде функции Lambda вы загружаете значение из службы Secrets Manager по мере необходимости.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...