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)?
Und wie kann ich es tun? Gibt es eine Möglichkeit, die ID der gerade erstellten Instanz zu übernehmen? – Ziva
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
@Hilft viel! Vielen Dank! – Ziva