在以编程方式设置区域时,在boto中连接弹性beanstalk的好方法是什么?

时间:2013-01-08 18:23:10

标签: python amazon-web-services boto

我正在使用boto(http://docs.pythonboto.org/en/latest/),并希望在连接到弹性beanstalk时以​​编程方式选择区域。到目前为止,我能够想到的只有:

import boto
from boto.beanstalk.layer1 import Layer1
Layer1.DefaultRegionName = 'us-west-1'
Layer1.DefaultRegionEndpoint = 'elasticbeanstalk.us-west-1.amazonaws.com'
ebs = boto.connect_beanstalk()

虽然我理论上可以打电话

boto.connect_beanstalk(region=<something>)

我无法想象如何构建一个boto.regioninfo.RegionInfo,这显然是Layer1类所期望的。

2 个答案:

答案 0 :(得分:1)

这对我来说肯定是个错误 - 但仔细看看代码,看起来RegionInfo上的连接参数从未使用过。在构造你自己的RegionInfo然后将它传递给构造函数时将它设置为None似乎对我有效。

regionInfo = boto.regioninfo.RegionInfo(None, 'us-west-1', 'elasticbeanstalk.us-west-1.amazonaws.com')
beanstalk = boto.connect_beanstalk(region=regionInfo)
mt.describe_applications()

对于它的价值,我非常确定在建立连接时只使用了完整的区域端点参数 - 例如“elasticbeanstalk.us-west-1.amazonaws.com”

答案 1 :(得分:0)

我这样做的方式是使用connect_to_region,如下所示:

import boto
ebs = boto.beanstalk.connect_to_region('us-west-1')

这将负责正确初始化(和缓存)所需的RegionInfo个对象。