Какова наилучшая практика для того, чтобы несколько AWMS Lambdas потребляли внешние (EC2) Postgres

78
9

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

Мой вопрос: если я это сделаю, 100 сценариев Lambdas, нужно будет иметь в каждой детали соединений как переменные среды?

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

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

Нужно ли их группировать?

Спасибо!

спросил(а) 2021-01-19T21:08:11+03:00 6 месяцев, 1 неделя назад
1
Решение
79

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

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

ответил(а) 2021-01-19T21:08:11+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема