Список экземпляров в группе автоматического масштабирования с помощью boto

Я хочу перечислить все экземпляры, которые в настоящее время работают в группе автоматического масштабирования. Можно ли это сделать с помощью бото?

Должна быть какая-то связь между ASG и экземплярами, поскольку boto имеет метод shutdown_instances в классе boto.ec2.autoscale.group.AutoScalingGroup.

Любые указатели в правильном направлении высоко ценятся!


person Sebastian Dahlgren    schedule 25.09.2012    source источник
comment
Для пользователя boto3 — boto3.readthedocs.org/en/latest/reference/ услуги/   -  person Chemical Programmer    schedule 15.02.2016


Ответы (1)


Что-то вроде этого должно работать:

>>> 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, заключается в том, что AutoScale хранит только небольшое подмножество информации об экземплярах. Это приведет к тому, что экземпляры переменных будут указывать на список объектов экземпляров для каждого экземпляра в группе автомасштабирования "mygroupname".

person garnaat    schedule 25.09.2012
comment
Спасибо гаарнат! Как раз то, что я искал - person Sebastian Dahlgren; 26.09.2012
comment
instance_ids = [i.id for i in group.instances] должно быть instance_ids = [i.instance_id for i in group.instances] - person mblakele; 02.08.2013
comment
Я написал полный скрипт на основе этого фрагмента по адресу stackoverflow.com/a/22544230/20774. - person James McMahon; 21.03.2014