2013-10-14 8 views
6

मैं बोटो में उदाहरणों की एक सूची प्राप्त करना चाहता हूं या तो foo का "घटक" टैग हो या बार।'टैग: घटक' द्वारा फ़िल्टर बोटो इंस्टेंस सूची: 'foo', या 'टैग: घटक': 'बार'

क्या दो अनुरोध करने और वस्तुओं को मंग करने से बचने का कोई तरीका है?

उत्तर

13

यह सभी उदाहरणों एक टैग या तो foo या bar के एक मूल्य के साथ component कहा जाता है कि खोजने चाहिए:

import boto.ec2 
c = boto.ec2.connect_to_region('us-west-2') 
reservations = c.get_all_instances(filters={'tag:component':['foo', 'bar']}) 

कि आपकी समस्या का समाधान है?

+0

मुझे एक खाली सूची मिलती है। मुझे लगता है कि यह करता है &&, नहीं? – J0hnG4lt

+1

दस्तावेज़ (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html) कहें कि यह एक OR करना चाहिए। मुझे थोड़ा और परीक्षण करने की कोशिश करें। – garnaat

+1

मैंने बस एक घटक में 'घटक: foo'' टैग जोड़ने का प्रयास किया और फिर उपरोक्त कॉल किया और यह उदाहरण वापस कर दिया। तो, ऐसा लगता है या मेरे लिए। – garnaat

0
#With boto3 
def get_instances_by_tag_value(tag, value): 
ec2 = boto3.resource('ec2') 
instances = ec2.instances.filter(
    Filters=[{'Name': 'tag:' + tag, 'Values': [value]}]) 
for instance in instances: 
    print(instance.id, instance.instance_type) 

get_instances_by_tag_value('tagname', 'tagvalue') 
संबंधित मुद्दे