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

Возможно ли создать экземпляр ec2 с помощью boto3 в python? Документ Boto3 здесь не помогает, и я не могу найти какие-либо справочные документы в Интернете. укажите несколько примеров кодов/ссылок.

Ответ 3

Ссылка, которую вы действительно ищете в документации, - это create_instances() объекта create_instances(). Это тип объекта, который вы вызываете, если вы создаете ресурс 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().)

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

Ответ 4

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

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',
    ],
)

Ответ 5

Если вы работаете с компьютера с Windows, вам нужно настроить AWS Cli с соответствующим разрешением EC2 для запуска экземпляра.

#
import boto3

ec2 = boto3.resource('ec2')

instance = ec2.create_instances(
    ImageId='ami-5eb63a32',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
)
print(instance[0].id)