Функции AWS Lambda всегда выполняются в VPC, но по умолчанию не в одном из VPC, созданных в вашей учетной записи. Чтобы запустить их в VPC в своей учетной записи, необходимо предоставить VPC-конфигурацию для своей функции AWS Lambda. AWS Lambda будет использовать эту конфигурацию для настройки эластичного сетевого интерфейса (ENI) в VPC, который затем использует ваша функция AWS Lambda.
Вот пример из " Настройка лямбда-функции для доступа к ресурсам в Amazon VPC ", как добавить такую конфигурацию VPC при создании функции AWS Lambda. Обратите внимание на vpc-config
-параметр:
aws lambda create-function \
--function-name ExampleFunction \
--runtime go1.x \
--role execution-role-arn \
--zip-file fileb://path/app.zip \
--handler app.handler \
--vpc-config SubnetIds=comma-separated-vpc-subnet-ids,SecurityGroupIds=comma-separated-security-group-ids \
--memory-size 1024
При этом, пожалуйста, обратите внимание на недостатки использования лямбда-функций AWS в VPC, как описано в Рекомендации по работе с лямбда-функциями AWS . Как подводит итог AWS:
Не помещайте свою лямбда-функцию в VPC, если в этом нет необходимости. Нет смысла использовать это для доступа к ресурсам, которые вы не можете предоставить публично, например, к частной Amazon Relational Database экземпляр. Такие сервисы, как Amazon Elasticsearch Service, могут быть защищены через IAM с помощью политик доступа, поэтому публичное раскрытие информации о конечной точке безопасно и не потребует от вас выполнения функции в VPC для ее защиты.