2013-12-11 5 views
11

Ich verwende instace.update() zu bekommen, um den Status zu erhalten, die gestoppt zurückkehrt, läuft oder ...Verwenden Boto EC2-Instanz Status

Aber es gibt einen anderen Status in der EC2-Web-Schnittstelle, die auch zeigt, es wird initialisiert oder ... 2/2 Prüfungen bestanden.

Gibt es eine Möglichkeit, den Status der Initialisierung zu bekommen? ..

Antwort

10

Diese Informationen aus dem DescribeInstanceStatus Anfrage kommt und in Boto über die get_all_instance_status Methode zur Verfügung steht. Siehe:

http://docs.pythonboto.org/en/latest/ref/ec2.html#boto.ec2.connection.EC2Connection.get_all_instance_status

für weitere Einzelheiten.

+0

wird später einen Test durchführen – user2836163

+2

Verwenden Sie get_all_instance_status(), um es zu testen. Es gibt das Objekt boto.ec2.instancestatus.InstanceStatus zurück. Also kann ich system_status und instance_status von ihm bekommen. VIELEN DANK! – user2836163

+1

Die ** boto-Dokumentation ** dieser Methode ist ein wenig irreführend - "Alle Instanzen in Ihrem Konto abrufen, die für die Wartung geplant sind", wenn dies wirklich für ** alle laufenden Instanzen ** verwendet werden kann, unabhängig davon, ob sie geplant sind Wartung oder nicht –

6

EDIT:

status=conn.get_all_instance_status(instance_ids=i-****) print status[0].system_status.details
oder
print status[0].system_status.details["reachability"]

============================ ============================
ÄLTERE:

Dies könnte Ihnen helfen. Sie können den Status aller Instanzen anzeigen. Sie können das einfache 'if' zum Filtern einer Instanz verwenden.

import boto; 
ec2=boto.connect_ec2() 
instances= ec2.get_only_instances() 
for instance in instances: 
    print instance.tags['Name'] , " is ", instance.state