我一直在尝试使用python boto模块中的modify_lb_attribute方法启用ELB连接耗尽;但是我还没有能够让它运转起来。根据这里的文档http://boto.readthedocs.org/en/latest/ref/elb.html,我应该可以像他一样称呼它:
modify_lb_attribute(load_balancer_name,attribute,value)
以下是一个例子:
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')
任何帮助或建议都将不胜感激。
由于
答案 0 :(得分:3)
用于实例化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。
答案 1 :(得分:0)
修改负载均衡器的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)