Как включить подключение с помощью 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)