it-swarm.com.de

So erstellen Sie eine ec2-Instanz mit boto3

Ist es möglich, eine ec2-Instanz mit boto3 in Python zu erstellen?. Das Boto3-Dokument hilft hier nicht und ich konnte keine Hilfedokumente online finden. Bitte geben Sie einige Beispielcodes/Links an.

15
MikA

Die API wurde geändert, befindet sich aber in der Dokumentation

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

Link zur Dokumentation: http://boto3.readthedocs.org/de/latest/guide/migrationec2.html#launching-new-instances

27
gbs

In API-Dokumenten finden Sie alle verfügbaren Optionen zum Erstellen von Instanzen

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

6
ranjeetcao

Der Link, nach dem Sie in der Dokumentation wirklich suchen, ist die create_instances()-Methode des ServiceResource-Objekts . Dies ist der Objekttyp, den Sie aufrufen, wenn Sie eine EC2-Ressource wie folgt erstellen:

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

Dieses enthält ein detaillierteres Beispiel und eine längere Liste der verfügbaren Parameter. 

Sie können auch Parameterwerte für AWS-Instanzen abrufen, die bereits über die AWS-Befehlszeilenschnittstelle ausgeführt werden:

$ aws ec2 describe-instances

Dadurch wird eine JSON-Datei gedruckt, aus der relevante Parameter extrahiert und an die create_instances()-Methode übergeben werden können. (Oder Sie können einen boto-Client verwenden und die describe_instances()-Methode aufrufen.)

(Hinweis: Wenn Sie sich fragen, was der Unterschied zwischen dem Client und der Ressource ist, dienen sie unterschiedlichen Zwecken für dasselbe Ziel - der Client ist eine untergeordnete Schnittstelle, während die Ressource eine übergeordnete Schnittstelle ist.)

6
charlesreid1

Sie können den Code, den ich verwendet habe, mit dem boto3 docs ausführen. Sie können Parameter nach Ihren Anforderungen hinzufügen oder entfernen. Dies ist jedoch das, was Sie normalerweise benötigen:

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

Wenn Sie von Ihrem Windows-Computer aus arbeiten, müssen Sie AWS Cli mit der erforderlichen EC2-Berechtigung zum Starten der Instanz konfigurieren.

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