Как включить подключение с помощью python boto modify_lb_attribute

Я пытался включить слив ELB-соединения с помощью метода modify_lb_attribute в модуле boto python; однако я не смог заставить его работать. Согласно документации здесь http://boto.readthedocs.org/en/latest/ref/elb.html я должен иметь возможность называть его так:

modify_lb_attribute (load_balancer_name, атрибут, значение)

Вот пример:

modify_lb_attribute('my-elb', 'connectionDraining', 120)

Однако, когда я делаю это, я получаю следующую ошибку:

Файл "/Library/Python/2.7/site-packages/boto/ec2/elb/init.py", строка 421, в значении modify_lb_attribute value.enabled и 'true' или 'false'. AttributeError: у объекта NoneType нет атрибута включено"

Я смог заставить его работать успешно с crossZoneLoadBalancing.

Например это работает:

modify_lb_attribute('my-elb', 'crossZoneLoadBalancing', 'true')

Любая помощь или предложения будут оценены.

Спасибо

2 ответа

Рабочий синтаксис для создания экземпляра ConnectionDrainingAttribute и передать его в балансировщик нагрузки:

from boto.ec2.elb.attributes import ConnectionDrainingAttribute
import boto.ec2.elb

connection = boto.ec2.elb.connect_to_region("region") 
cda = ConnectionDrainingAttribute(connection)
cda.enabled = True  
cda.timeout = 120
connection.modify_lb_attribute( 
    load_balancer_name='my-elb',
    attribute='connectionDraining',
    value=cda
)

Больше информации о ConnectionDrainingAttribute Класс можно найти здесь, в boto docs.

Когда вы изменяете connectionDraining атрибут балансировщика нагрузки, на самом деле вы можете указать два значения. Первый boolean указывает на то, активируете ли вы или отключаете функцию опустошения соединения. Второе - целое число, обозначающее timeout что, очевидно, применимо только в том случае, если разрешен слив соединения.

Чтобы позволить вам указать оба этих значения, boto определяет ConnectionDrainingAttribute класс в boto.ec2.elb.attributes, Вы должны передать экземпляр этого класса в качестве значения modify_elb_attributeНапример:

from boto.ec2.elb.attributes import ConnectionDrainingAttribute

cda = ConnectionDrainingAttribute()
cda.enabled = True
cda.timeout = 120
...
modify_lb_attribute('my-elb', cda)
Другие вопросы по тегам