Я пытаюсь сделать частный лямбда-вызов AWS через шлюз API, и я не нашел правильного ответа в Интернете, вероятно, потому, что я новичок в управлении веб-сайтами AWS.
Ближайший источник, который я нашел, - это документация Amazon: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-api-test-invoke-url.html
Я использую бессерверную структуру, и вот пример настройки функции
provider:
name: aws
runtime: nodejs8.10
memorySize: 128
environment:
MONGODB_URL: ....
MONGODB_USER: ....
MONGODB_PWD:....
vpc:
securityGroupIds:
- ....
subnetIds:
- ....
- ....
functions:
addGameTemplate:
handler: game.create
events:
- http:
method: put
path: games
cors: true
private: true
URL-адрес также размещен на route53.
Любое руководство будет оценено!
Если я правильно понимаю вашу проблему, вы хотите вызвать частный API-шлюз в своем VPC из Lambda, верно?
Для этого вам нужно выполнить лямбду в VPC, иначе у него не будет доступа к частным ресурсам VPC.
Проверь это: Настройка лямбда-функции для доступа к ресурсам в Amazon VPC. В частности, вам нужно будет указать ему идентификатор VPC и список подсетей, в которых он должен выполняться.
Как поясняется в комментариях, на самом деле вы ищете ограничение доступа к вашему шлюзу API и разрешить доступ только из вашего VPC. Для этого создайте / обновите свой API Gateway. Группа безопасности чтобы разрешить доступ только из вашего диапазона адресов VPC (или из любого места, где вы хотите ограничить доступ).
Надеюсь, это поможет :)