Я пытаюсь отправить исходящий запрос API стороннему сервису из функции Lambda, но функция всегда отключается без ошибок.
Ранее это происходило при попытке выполнить операцию s3.putObject
в другой функции (все еще в той же VPC / подсетях), и мне удалось обойти это, добавив конечную точку с именем службы com.amazonaws.us-east-1.s3
и подключив ее к таблице маршрутизации, связанной с VPC, в котором находится эта лямбда-функция.
На панели «Лямбда» внутри поля «Сеть» -> раздел «Группы безопасности» я вижу следующее предупреждение:
Когда вы включите VPC, ваша лямбда-функция потеряет интернет по умолчанию
доступ. Если вам требуется внешний доступ в Интернет для вашей функции,
убедитесь, что ваша группа безопасности разрешает исходящие соединения и что
ваш VPC имеет шлюз NAT.
Я считаю, что эта группа безопасности разрешает исходящие соединения, основываясь на таблице исходящих правил, прямо под ней:
По этому второму требованию я могу подтвердить, что у этого VPC есть шлюз NAT, потому что на панели мониторинга VPC на вкладке NAT Gateways у того, кто появляется там, есть связанный с ним VCP, и что VPC является тем же, на котором размещен Лямбда-функция.
Я следовал руководству по созданию Flow Log для мониторинга трафика в и из VPC, надеясь увидеть, что эти исходящие запросы действительно отклоняются. Однако после этого и проверки журналов CloudWatch все записи заканчиваются на ACCEPT OK
или NODATA
.
Как я могу предоставить доступ в Интернет для моей функции VPC Lambda? - это руководство, которому я изначально пытался следовать, но я застрял на шаге 4 в разделе To create a public or private subnet
:
В раскрывающемся меню Изменить на: выберите соответствующую таблицу маршрутов:
Для частной подсети маршрут по умолчанию должен указывать на шлюз NAT
или экземпляр NAT:
Пункт назначения: 0.0.0.0/0
Цель: nat-… (или eni-…)
Для публичной подсети
маршрут по умолчанию должен указывать на интернет-шлюз:
Пункт назначения: 0.0.0.0/0
Цель: igw-…
Для всех четырех подсетей в этом VPC, щелкнув раскрывающийся список справа от Change to:
, отобразился только один вариант, уже выбранный, rtb-xxxxxxxx
. После нажатия на ссылку на эту таблицу маршрутов и перехода на вкладку Маршруты рядом с Сводкой я вижу следующее:
Что я могу делать неправильно, блокируя доступ функции Lambda к Интернету?