2012-09-25 11 views
7

के साथ सूची उदाहरण मैं वर्तमान में एक ऑटो स्केलिंग समूह के भीतर चल रहे सभी उदाहरणों को सूचीबद्ध करना चाहता हूं। क्या यह बोटो के साथ पूरा किया जा सकता है?ऑटो स्केलिंग समूह में बोटो

एएसजी और उदाहरणों के बीच कुछ संबंध होना चाहिए क्योंकि boto.ec2.autoscale.group.AutoScalingGroup कक्षा में बोटो के पास shutdown_instances विधि है।

सही दिशा में किसी भी पॉइंटर्स की अत्यधिक सराहना की जाती है!

+0

boto3 उपयोगकर्ता के लिए - https://boto3.readthedocs.org/en/latest/reference/services/autoscaling.html –

उत्तर

10

कुछ इस तरह काम करना चाहिए:

>>> import boto 
>>> autoscale = boto.connect_autoscale() 
>>> ec2 = boto.connect_ec2() 
>>> group = autoscale.get_all_groups(['mygroupname'])[0] 
>>> instance_ids = [i.instance_id for i in group.instances] 
>>> reservations = ec2.get_all_instances(instance_ids) 
>>> instances = [i for r in reservations for i in r.instances] 

कारण है कि हम उदाहरण आईडी को इकट्ठा करने और फिर फोन EC2 कि लपेटकर केवल उदाहरणों के बारे में जानकारी के एक छोटे सबसेट संग्रहीत करता है करने के लिए है। इसके परिणामस्वरूप ऑटोस्केलिंग समूह "mygroupname" में प्रत्येक उदाहरण के लिए इंस्टेंस ऑब्जेक्ट्स की एक सूची को इंगित करने वाले परिवर्तनीय उदाहरण होंगे।

+0

धन्यवाद garnat! बस मैं –

+2

'instance_ids = [i.id के लिए group.instances में] के लिए खोज रहा था]' example_ids = होना चाहिए [i.instance_id group.instances में i के लिए] ' – mblakele

+0

मैंने इस स्निपेट के आधार पर एक पूर्ण स्क्रिप्ट लिखी http://stackoverflow.com/a/22544230/20774 –

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