2012-09-25 38 views
7

我想列出當前在自動縮放組內運行的所有實例。這可以用博託完成嗎?使用boto在自動縮放組中列出實例

ASG和實例之間必須存在某種關係,因爲boto在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] 

我們之所以能夠收集實例ID的,然後調用EC2是自動調整隻存儲關於實例的信息的一小部分。這將導致變量實例指向自動調節組「mygroupname」中每個實例的實例對象列表。

+0

感謝gaarnat!我正在尋找 –

+2

'instance_ids = [i.id for我在group.instances]'應該是'instance_ids = [i.instance_id爲我在group.instances]' – mblakele

+0

我寫了一個基於這個片段的完整腳本http://stackoverflow.com/a/22544230/20774 –

相關問題