2016-10-09 12 views
0

Ich arbeite derzeit mit den AWS EC2-Instanzen. Ich möchte mehrere Instanzen starten, die für verschiedene Aufgaben verantwortlich sind. So erstellen und starten Instanzen ich die unten Funktion:Boto3 - Tag Instanz während der Erstellung

def ec2start(num): 
    ec2.create_instances( 
     ImageId='image_id', 
     InstanceType='instance_type', 
     SecurityGroupIds= [ 'security_group_id' ], 
     MinCount=int(num), 
     MaxCount=int(num) 
     ) 

Da ich mehrere Instanzen laufen, aber einige von ihnen führen ähnliche Operationen, ich bin mit @roles eine Funktion auf mehrere Instanzen anrufen und beschleunige alles. Um eine bestimmte Funktion für ausgewählte Instanzen verwenden zu können, füge ich jeder Instanz ein Tag hinzu. Bisher eine Instanz zu markieren, ich bin mit einer folgenden Funktion:

def ec2tagInstance(ids, tagname): 
    ec2.create_tags(Resources=[ids], Tags=mytags) 
    instances = ec2.instances.filter(InstanceIds=[ids]) 
    for instance in instances: 
     for tag in instance.tags: 
      if tag["Key"] == "Type": 
       tag["Value"] = tagname 

aber jetzt muß ich zuerst erstellen (Start) eine Instanz und dann, ich habe eine Funktion aufzurufen ec2tagInstance mit einer bestimmten ID , um es zu markieren. Ist es möglich, ein Tag zu einer Instanz hinzuzufügen, wenn ich eine neue Instanz erstelle (starte)?

Antwort

3

Es gibt wirklich keine Möglichkeit, Tags einer Instanz zuzuweisen, wenn Sie sie erstellen. Die EC2 RunInstances API-Anfrage akzeptiert keinen Tags Parameter.

Sie könnten Ihre eigene Funktion schreiben, die die Instanzen erstellt und sie unmittelbar danach kennzeichnet, aber es gibt keine Möglichkeit, dies mit einem einzigen API-Aufruf zu tun.

+0

Und wie kann ich es tun? Gibt es eine Möglichkeit, die ID der gerade erstellten Instanz zu übernehmen? – Ziva

+1

Der Aufruf von '' create_instances'' sollte eine Liste von '' Instance''-Objekten zurückgeben, die die erstellten Instanzen repräsentieren. Jedes Instance-Objekt hat ein Attribut namens "instance_id", das der neuen Instanz zugewiesen ist. Hilft das? – garnaat

+0

@Hilft viel! Vielen Dank! – Ziva

Verwandte Themen