web-dev-qa-db-fra.com

Comment créer une instance ec2 en utilisant boto3

Est-il possible de créer une instance ec2 en utilisant boto3 en python? veuillez fournir des exemples de codes/liens.

15
MikA

L'API a changé mais c'est juste là dans la documentation

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

Lien vers la documentation: http://boto3.readthedocs.org/fr/latest/guide/migrationec2.html#launching-new-instances

27
gbs

Référez-vous à la documentation d'API a toutes les options disponibles pour créer l'instance

http://boto3.readthedocs.org/fr/latest/reference/services/ec2.html#EC2.Subnet.create_instances

6
ranjeetcao

Le lien que vous recherchez réellement dans la documentation est la méthode create_instances() de l'objet ServiceResource . C'est le type d'objet que vous appelez si vous créez une ressource EC2 comme celle-ci:

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

Celui-ci contient un exemple plus détaillé et une liste plus longue des paramètres disponibles. 

Vous pouvez également obtenir des valeurs de paramètre pour les instances AWS déjà en cours d'exécution à l'aide de l'interface de ligne de commande AWS:

$ aws ec2 describe-instances

Ceci affiche un fichier JSON à partir duquel des paramètres pertinents peuvent être extraits et passés à la méthode create_instances(). (Vous pouvez également utiliser un client de boto et appeler la méthode describe_instances() .)

(Remarque: si vous vous demandez quelle est la différence entre le client et la ressource, ils servent des objectifs différents pour le même objectif - le client est une interface de niveau inférieur tandis que la ressource est une interface de niveau supérieur.)

6
charlesreid1

Vous pouvez exécuter le code que j'ai utilisé à partir de boto3 docs . Vous pouvez ajouter ou supprimer des paramètres selon vos besoins, mais voici ce que vous auriez normalement besoin:

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

Si vous êtes sous Windows, vous devez configurer AWS Cli avec l’autorisation appropriée EC2 pour lancer l’instance.

import boto3

ec2 = boto3.resource('ec2')

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