Как создать экземпляр ec2 с помощью boto3


Можно ли создать экземпляр ec2, используя boto3 в python? Документ Boto3 здесь не помогает, и я не смог найти никаких полезных документов в интернете. пожалуйста, предоставьте некоторые примеры кодов / ссылок.

4 13

4 ответа:

API изменился, но он прямо там, в документации

# Boto 3
ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5)

Ссылка на документацию: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances

См. API docs имеет все доступные опции для создания экземпляра

Http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Subnet.create_instances

Ссылка, которую вы действительно ищете в документации, - это create_instances() метод объекта ServiceResource . Это тип объекта, который вы вызываете, если создаете ресурс EC2 следующим образом:

s = boto3.Session(region_name="us-west-1")
ec2 = s.resource('ec2')
...
instance = ec2.create_instances(**y_kwargs)

Это содержит более подробный пример и более длинный список доступных параметров.

Вы также можете получить значения параметров для инстансов AWS, которые уже запущены, используя интерфейс командной строки AWS:

$ aws ec2 describe-instances

При этом выводится файл JSON, из которого соответствующие параметры могут быть извлечены и переданы в Метод create_instances(). (Или вы можете использовать клиент boto и вызвать describe_instances() метод .)

(Примечание: Если вам интересно, в чем разница между клиентом и ресурсом, они служат разным целям для одной и той же цели - клиент является интерфейсом более низкого уровня, а ресурс-интерфейсом более высокого уровня.)

Вы можете запустить код, который я использовал, изboto3 docs . Вы можете добавлять или удалять параметры в соответствии с вашими требованиями, но это то, что вам обычно требуется:

import boto3

client = boto3.client('ec2', region_name='us-west-2')

response = client.run_instances(
    BlockDeviceMappings=[
        {
            'DeviceName': '/dev/xvda',
            'Ebs': {

                'DeleteOnTermination': True,
                'VolumeSize': 8,
                'VolumeType': 'gp2'
            },
        },
    ],
    ImageId='ami-6cd6f714',
    InstanceType='t3.micro',
    MaxCount=1,
    MinCount=1,
    Monitoring={
        'Enabled': False
    },
    SecurityGroupIds=[
        'sg-1f39854x',
    ],
)