В вашем вопросе много информации, поэтому на все это трудно ответить, но, похоже, ваш основной вопрос - как разрешить лямбда-функции AWS подключаться к экземпляру Amazon RDS.
Ваша конфигурация должна быть такой:
- Функция Lambda, настроенная для подключения к VPC (любая подсеть, это не имеет значения)
- Экземпляр Amazon RDS, запущенный втот же VPC
- Группа безопасности (
Lambda-SG
) для функции Lambda - ей не требуется конфигурация, но она должна существовать - Группа безопасности (
RDS-SG
) наЭкземпляр базы данных Amazon RDS, который разрешает входящий трафик с Lambda-SG
на порт 3306
Обратите внимание, что RDS-SG
разрешает соединение с Lambda-SG
.Группа безопасности может ссылаться на другую группу безопасности.
Кроме того, увеличьте время ожидания для вашей функции Lambda.В настоящее время он установлен на 3 секунды, что может быть недостаточно для выполнения того, что вы пытаетесь сделать.Время ожидания соединения установлено на 5 секунд, поэтому вам нужно, чтобы лямбда-функция работала дольше, чем это время, чтобы подтвердить происходящее.
Это все, что вам нужно.Вам не нужен шлюз NAT для этой настройки.Требуется только в том случае, если вы хотите, чтобы функция Lambda была подключена к VPC И имела возможность подключения к Интернету.Для того, что вы описали, вам нужна только одна подсеть (для экземпляра базы данных RDS), но вашей архитектуре может потребоваться больше для других ресурсов, которые вы используете.Событие Интернет-шлюз не требуется для лямбда-бит и RDS.Но сфокусируйтесь на том, чтобы установить соединение Lambda-RDS, и тогда вы сможете очистить вещи.