Я пытаюсь заставить rds с postgres работать с лямбдой, но пока не повезло. Я прочитал все другие темы об этом здесь, дважды проверил свою конфигурацию Lambda VPC + Subnet, она такая же, как и конфигурация RDS, но все равно не удается подключиться, что мне здесь не хватает?
Несколько скриншотов для пояснения:



Раньше я включал общий доступ и мог подключаться без сервера в автономном режиме.
Спасибо!
Можете ли вы опубликовать данные своей группы безопасности? вы открыли порт на лямбду?
Можете ли вы опубликовать политику IAM, прикрепленную к вашей Lambda, роли выполнения?
@strongjz предоставленная печать имеет все политики.
@jpact Я не смог найти эту роль ... Все политики, которые у меня есть для этой лямбды, указаны в печати, в вопросе: D
@SudharsanSivasankaran, что вы имеете в виду, открывая порт для лямбды?
каковы правила в вашей группе безопасности? это ограничено определенным ip? или 0.0.0.0/0?
Он ограничен только 0.0.0.0/0. Спасибо!
@Leonardo вы указали только политики доступа. Политики доверия находятся на вкладке Trust relationships
@jpact только что отредактировал с изображением доверительных отношений! Спасибо
Что именно появляется сообщение об ошибке при попытке подключения? Журналы из функции lamdba.
Он просто не подключается, и я получаю тайм-аут от лямбда, у меня нет конкретной ошибки от лямбда.
Пара вопросов: что такое тайм-аут Lambda и можете ли вы поделиться входящими и исходящими правилами групп безопасности, которые вы подключили к функции Lambda и RDS?
Тайм-аут 10 с, входящий: PostgreSQL (5432) TCP (6) 5432 0.0.0.0/0
Исходящий: ВСЕ трафик ВСЕ ВСЕ 0.0.0.0/0
Я не разбираюсь в Postgres. Есть ли в Postgres разрешить доступ ко всем запросам? Если да, то запускаете ли вы / можете ли вы его запустить, а затем снова попытаться подключить его из Lambda?
На самом деле это так, я смог протестировать свою лямбду в автономном режиме (используя бессерверный автономный режим), и он действительно работал нормально, поэтому я подозреваю, что это может быть связано с IP-адресами или конфигурациями vpc.





Вы проверили свою группу безопасности для службы RDS? Он должен разрешить доступ из групп безопасности, предоставленных вашей функции Lambda. Недостаточно того, что они находятся в одном VPC / подсетях. Группе безопасности по-прежнему необходимо разрешить трафик на портах для postgres (5432).
Обратите внимание, что для групп безопасности вам не нужно выбирать IP-адрес источника (что может быть сложно для Lambda). Но я заметил, что вы даете своей лямбда-функции группу sg-29aac25d. Вы можете использовать этот идентификатор для предоставления доступа к RDS.
Политики IAM не должны иметь значения, поскольку вы выполняете аутентификацию по postgres. Если ваш IAM не позволяет вашей Lambda выполняться, проблема не в IAM.
Спасибо, после добавления моего vpc по умолчанию в мою группу безопасности rds все заработало!
Привет @Leonardo. Есть ли у вас какие-либо журналы от CloudWatch о выполнении Lambda? Прилагается ли к вашей роли, используемой Lambda, политика
AssumeRole?