Создание экземпляра AWS EC2 с помощью скрипта python boto3 в функции Lambda - PullRequest
0 голосов
/ 27 сентября 2019

Ниже приведен мой код для запуска экземпляра на пользовательском VPC, но я вижу ниже ошибку.Нужна ваша помощь в поиске проблемы:


import json
import boto3

def lambda_handler(event, context):
     session_client=boto3.client(service_name='ec2')
     response = session_client.run_instances(
     #SecurityGroupIds=['sg-0ffb80bb93205a004'],
     #SubnetId='subnet-0bb30254459fd4714',
     MaxCount=1,
     MinCount=1,
     NetworkInterfaces=[
        {
            'NetworkInterfaceId':'eni-0846a5c0c47e98b3c',
            'Description': 'Network Interface Description',
            'DeviceIndex': 123,
            'SubnetId': 'subnet-0bb30254459fd4714'
        },
    ],
     LaunchTemplate={
     'LaunchTemplateId': 'lt-0d3c7dd295796ad6b',
     'Version': '1'
      })

Error: Network interfaces and an instance-level subnet ID may not be specified on the same request",
  "errorType": "ClientError",

Спасибо, Bapu Reddy Battu

1 Ответ

0 голосов
/ 28 сентября 2019

При создании экземпляра EC2 через boto3

1 можно передать два параметра subnetid: SubnetId на корневом уровне в запросе:

SubnetId (строка) - [EC2-VPC] Идентификатор подсети, в которую запускается экземпляр.Если вы указываете сетевой интерфейс, вы должны указать любые подсети как часть сетевого интерфейса.

Поскольку вы передаете параметр NetworkInterfaces, этот SubnetId не будет передан.

2) SubnetId как часть параметра NetworkInterfaces

SubnetId (строка) - идентификатор подсети, связанной с сетьюинтерфейс.Применяется только при создании сетевого интерфейса при запуске экземпляра.

Поскольку вы используете уже существующий сетевой интерфейс.Вы также не должны передавать параметр SubnetId внутри NetworkInterfaces.

Справочная документация: экземпляры запуска EC2 - документация Boto3

...