По умолчанию Lambda
в VPC
не имеет общедоступного доступа в Интернет.
Один из вариантов, который у вас есть, - настроить NAT gateway
в подсети. Lambda
развернут, чтобы предоставить ему доступ в Интернет, следовательно, доступ к общедоступному REST API. Подробнее здесь -> Доступ в Интернет для лямбда-функций
AWS Lambda использует предоставленную вами информацию VPC для настройки ENI, которые позволяют вашей функции Lambda получать доступ к ресурсам VPC. Каждому ENI назначается частный IP-адрес из диапазона IP-адресов в указанных вами подсетях, но ему не назначаются общедоступные IP-адреса. Поэтому, если вашей функции Lambda требуется доступ к Интернету (например, для доступа к сервисам AWS, у которых нет конечных точек VPC), вы можете настроить экземпляр NAT внутри вашего VPC или использовать шлюз Amazon VPC NAT. Дополнительную информацию см. В разделе «Шлюзы NAT» в руководстве пользователя Amazon VPC. Вы не можете использовать интернет-шлюз, подключенный к вашему VPC, поскольку для этого ENI должен иметь общедоступные IP-адреса.
Или вы можете посмотреть здесь -> Почему я не могу подключиться к своему общедоступному API с конечной точки VPC API Gateway . Это говорит об этом
Используйте инструмент командной строки curl для проверки вашего частного API. В вашей команде curl укажите базовый URL-адрес, используемый для вызова API, а также заголовок Host или заголовок x-apigw-api-id. Дополнительные сведения см. В разделе «Вызов вашего частного API с использованием общедоступных DNS-имен конечных точек».
Базовый URL-адрес для вызова API включает DNS-имя и сценическое имя. Это выглядит так:
https://vpceId.execute -api.awsRegion.vpce.amazonaws.com / сценическое имя
Примечание. Замените vpceId на идентификатор конечной точки VPC, который вы скопировали. Замените awsRegion на регион AWS вашего частного API (например, us-east-1). Замените stageName именем этапа, на котором развернут ваш API.
Заголовок хоста выглядит так:
Ведущий: apiId.execute-api.awsRegion.amazonaws.com
Примечание. Замените apiId на идентификатор API, который вы скопировали. Замените awsRegion на регион AWS вашего частного API (например, us-east-1).
Заголовок x-apigw-api-id выглядит так:
х-apigw-апи-ID: apiId
Примечание. Замените apiId на идентификатор API, который вы скопировали.
Если вы все настроите правильно, вы получите код ответа 200.