2016-07-21 1 views
0

Я пытаюсь получить имена ELB и прикрепленные идентификаторы экземпляров с помощью модулей boto python.Как запросить AWS, чтобы получить имена ELB и прикрепленные к ним экземпляры, используя модули python boto?

{ 
    import boto 

    conn = boto.connect_elb() 
    conn.get_all_load_balancers() 
} 

дает только имена балансировки нагрузки Теперь, как я могу получить экземплярный идентификаторы, присоединенные к балансировки нагрузки?

+1

в простом CLI это будет 'AWS ELB описывает-нагрузка-балансиры --load-балансир-имя - -query LoadBalancerDescriptions []. Экземпляры вы можете перевести в код python –

ответ

2

conn.get_all_load_balancers() - возвращает список объектов эльфов. Каждый объект elb имеет параметр instances, который покажет вам прикрепленные экземпляры. И оттуда вы можете получить их удостоверения личности.
Если вы хотите найти локти по имени, вам необходимо отфильтровать первый цикл.

Так что-то подобное должно работать (спасибо @ Фредерик Генри для обновления):

import boto 

conn = boto.connect_elb() 
elbs = conn.get_all_load_balancers(load_balancer_names=['MY-ELB-NAME'])[0] 
instances = [inst.id for elb in elbs for inst in elb.instances] 
+0

вы можете фильтровать по имени уже нет? что-то вроде 'conn.get_all_load_balancers (load_balancer_names = ['MY-ELB-NAME'])' –

+0

@ FrédéricHenri Может быть, havent попытался :) – Vor

+0

@ FrédéricHenri: Сначала мне нравится, чтобы вы поблагодарили за ответ. На самом деле я попробовал вышеуказанные шаги, чтобы получить сообщение об ошибке. ** AttributeError: объект ResultSet не имеет атрибутов 'экземпляры' **. – Manzoor

Смежные вопросы