2012-09-25 2 views
7

Ich möchte alle Instanzen auflisten, die derzeit in einer Gruppe mit automatischer Skalierung ausgeführt werden. Kann das mit Boto erreicht werden?Instanzen in der Gruppe für automatische Skalierung mit Boto auflisten

Es muss eine Beziehung zwischen der ASG und den Instanzen als boto die shutdown_instances Methode innerhalb der boto.ec2.autoscale.group.AutoScalingGroup Klasse.

Alle Hinweise in die richtige Richtung werden sehr geschätzt!

+0

Für boto3 Benutzer - https://boto3.readthedocs.org/de/latest/reference/services/autoscaling.html –

Antwort

10

So etwas sollte funktionieren:

>>> import boto 
>>> autoscale = boto.connect_autoscale() 
>>> ec2 = boto.connect_ec2() 
>>> group = autoscale.get_all_groups(['mygroupname'])[0] 
>>> instance_ids = [i.instance_id for i in group.instances] 
>>> reservations = ec2.get_all_instances(instance_ids) 
>>> instances = [i for r in reservations for i in r.instances] 

Der Grund müssen wir die Instanz-IDs sammeln und dann EC2 zu nennen ist, dass Autoscale speichert nur eine kleine Teilmenge von Informationen über die Instanzen. Dies würde dazu führen, dass die Variableninstanzen für jede Instanz in der Autoscaling-Gruppe "mygroupname" auf eine Liste von Instance-Objekten verweisen.

+0

Danke gaarnat! Genau das, was ich gesucht habe –

+2

'instance_ids = [i.id für i in group.instances]' sollte sein 'instance_ids = [i.instance_id für i in group.instances]' – mblakele

+0

Ich schrieb ein vollständiges Skript basierend auf diesem Snippet bei http://stackoverflow.com/a/22544230/20774 –

Verwandte Themen