2

我正在使用 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 类所期望的。

4

2 回答 2

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”

于 2013-01-09T23:32:54.520 回答
0

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

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

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

于 2015-08-13T13:52:53.980 回答