Устранение неполадок при подключении Lambda к RDS с помощью пиринга VPC

Время ожидания моей функции AWS Lambda истекает, когда она подключается к экземпляру RDS в другом VPC. VPC проверяются.

Вещи, которые я проверил:

  • Лямбда находится внутри правильного VPC
  • RDS находится внутри другого VPC
  • RDS существует в подсетях, к которым подключены пиринговые сети.
  • Пиринг VPC "принят"
  • Группа безопасности Lambda имеет разрешение на вход на правильный порт ( 5432) в группу безопасности RDS
  • Группа безопасности Lambda имеет разрешение на выход в любом месте на любом порту.
  • Существуют записи таблицы маршрутов от подсетей Lambda VPC к пирингу.
  • Существуют записи таблицы маршрутов от подсетей RDS VPC к пирингу.

Что еще я могу проверить / использовать, чтобы решить эту проблему с подключением?


Обновлять

  • Имена хостов DNS и разрешение DNS включены для обоих VPC.

Обновлять

Я пробовал следующее:

  • Создайте экземпляр EC2 в той же подсети, что и Lambda
  • Назначьте лямбда SG на EC2
  • SSH подключиться к EC2
  • telnet в RDS:
      telnet rds.xxxxxxxxxx.eu-west-2.rds.amazonaws.com 5432
Trying 10.11.65.225...
Connected to rds.xxxxxxxxxx.eu-west-2.rds.amazonaws.com.
Escape character is '^]'.
^CConnection closed by foreign host.

Таким образом, EC2 может подключиться. Следовательно, проблема должна быть в лямбде.

Что я могу попробовать дальше?

1 ответ

Проблема в моем случае (может быть, и в вашем тоже?) Заключалась в том, что время ожидания запроса истекло, а не в попытке подключения. Вы можете проверить это, изменив запрос на SELECT 1 AS xили похожие. Решение состоит в том, чтобы оптимизировать запрос, чтобы он мог выполняться в разумные сроки.

Уловка запуска EC2 с настройками, аналогичными Lambda, и подключения через SSH - хороший вариант.

Другие вопросы по тегам