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 に答える