2016-01-12 21 views
12

Non sono sicuro di come visualizzare il nome della mia istanza nella AWS EC2 utilizza boto3Visualizzazione nome EC2 istanza utilizzando Boto 3

Questa è una parte del codice che ho:

import boto3 

ec2 = boto3.resource('ec2', region_name='us-west-2') 
vpc = ec2.Vpc("vpc-21c15555") 
for i in vpc.instances.all(): 
    print(i) 

Quello che ho ottenere in cambio è

... 
... 
... 
ec2.Instance(id='i-d77ed20c') 

enter image description here

posso ch ange i di essere i.id o i.instance_type ma quando provo name ottengo:

AttributeError: 'ec2.Instance' object has no attribute 'name'

Qual è il modo corretto per ottenere il nome istanza?

risposta

12

Ci possono essere altri modi. Ma dal punto di vista del codice, il seguente dovrebbe funzionare.

>>> for i in vpc.instances.all(): 
... for tag in i.tags: 
...  if tag['Key'] == 'Name': 
...  print tag['Value'] 

Una soluzione di linea, se si desidera utilizzare la lista potente di comprensione di Python:

inst_names = [tag['Value'] for i in vpc.instances.all() for tag in i.tags if tag['Key'] == 'Name'] 
print inst_names 
Problemi correlati