2013-12-11 21 views
11

sto usando instace.update() per ottenere lo status, che restituisce arrestato, in esecuzione o ...Usa Boto per ottenere lo status EC2 esempio

Ma c'è un altro stato in l'interfaccia web EC2 che anche spettacoli sta inizializzando o ... 2/2 assegni passati.

C'è un modo per ottenere lo status di inizializzazione? ..

risposta

10

Tale informazione viene dalla richiesta di DescribeInstanceStatus ed è disponibile in boto attraverso il metodo get_all_instance_status. Vedere:

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

per i dettagli.

+0

eseguirà un test più avanti – user2836163

+2

Basta usare get_all_instance_status() per testarlo. Restituisce l'oggetto classe boto.ec2.instancestatus.InstanceStatus. Quindi posso ottenere system_status e instance_status da esso. GRAZIE! – user2836163

+1

La ** documentazione di boto ** su questo metodo è un po 'fuorviante - "Recupera tutte le istanze nel tuo account pianificate per la manutenzione", quando in realtà questo può essere utilizzato su ** eventuali istanze in esecuzione **, indipendentemente dal fatto che siano programmate per manutenzione o no –

6

EDIT:

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

============================ =================
ANZIANO:

Questo potrebbe aiutarti. Indica lo stato di tutte le istanze, puoi usare il semplice 'if' per filtrare un'istanza.

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