2016-01-12 6 views
12

का उपयोग कर रहा है कि कैसे का उपयोग कर boto3प्रदर्शित Boto 3

इस कोड के कुछ मेरे पास है है एडब्ल्यूएस EC2 में मेरे उदाहरण के नाम प्रदर्शित करने के लिए यकीन नहीं है EC2 उदाहरण नाम:

import boto3 

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

क्या मैं बदले में मिलता है

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

enter image description here

मैं चर्चा कर सकते हैं Ange ii.id या i.instance_type होने के लिए लेकिन जब मैं name कोशिश मैं:

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

उदाहरण के नाम प्राप्त करने के लिए सही तरीका क्या है?

उत्तर

12

अन्य तरीके हो सकते हैं। लेकिन आपके कोड बिंदु से, निम्नलिखित काम करना चाहिए।

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

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

एक लाइनर समाधान आप अजगर के शक्तिशाली सूची समझ उपयोग करना चाहते हैं

4

एडब्ल्यूएस ईसी 2 में एक उदाहरण टैग नाम tag के साथ टैग किया गया है।

आदेश दिए गए उदाहरण के लिए नाम टैग के मान को पाने के लिए, आपको लगता है कि टैग के लिए उदाहरण क्वेरी करने के लिए की जरूरत है:

देखें Obtaining tags from AWS instances with boto

संबंधित मुद्दे