2016-01-12 5 views
12

Ich bin nicht sicher, wie der Name meiner Instanz in AWS EC2 anzuzeigen mit boto3angezeigte EC2 Instanzname mit Boto 3

Dies ist ein Teil des Codes ich habe:

import boto3 

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

Was ich erhalten im Gegenzug ist

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

enter image description here

ich kann ch ange i seine i.id oder i.instance_type aber wenn ich name versuche ich bekommen:

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

Was ist der richtige Weg, um die Instanznamen zu bekommen?

Antwort

12

es andere Möglichkeiten, sein kann. Aber von Ihrem Code Sicht sollte das folgende funktionieren.

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

One Liner Lösung, wenn Sie wollen Python leistungsstarke Liste Verständnis verwenden:

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