Я считаю, что есть два возможных решения этой проблемы:
Первый и самый простой вариант - воспользоваться «горячим состоянием лямбды», это концепция, когда Lambda повторно использует контекст выполнения для последующих вызовов.Согласно предложению AWS
Все объявления в вашем коде функции Lambda (вне кода обработчика, см. Модель программирования) остаются инициализированными, обеспечивая дополнительную оптимизацию при повторном вызове функции.Например, если ваша функция Lambda устанавливает соединение с базой данных, а не восстанавливает соединение, исходное соединение используется в последующих вызовах.Мы предлагаем добавить логику в ваш код, чтобы проверить, существует ли соединение до его создания.
По сути, в то время как лямбда-функция является горячей стадией, она "может / должна" повторно использовать открытое соединение (я).
Ограничения следующие:
- вы повторно используете соединение только для одного лямбда-типа, поэтому, если у вас есть 5 лямбда-функций, вызываемых все время, вы все равно будете использовать 5 соединений
- когда у вас есть всплеск лямбда-вызовов, включая параллельные исполнения, этот подход становится менее эффективным, поскольку лямбда будет выполняться в новом контексте выполнения для большинства запросов
Второй вариант будетиспользовать пул соединений, пул соединений - это массив установленных соединений с базой данных, так что соединения могут использоваться повторно, когда требуются будущие запросы к базе данных.
Хотя второй вариант обеспечивает более согласованное решение, он требует гораздо большегоинфраструктура.
- вам потребуетсядля запуска отдельного экземпляра для пула, и если вы хотите сделать все правильно, возможно, по крайней мере, два экземпляра и балансировщик нагрузки (если не используются контейнеры).
Хотя это может быть слишком сложно для обеспечения такого количествадополнительная инфраструктура для пула подключений, она по-прежнему может быть допустимым вариантом в зависимости от масштаба проекта, вашей существующей инфраструктуры (может быть, вы уже используете контейнеры) и экономически выгод