web-dev-qa-db-ja.com

boto3 client NoRegionError:リージョンエラーを指定するのは時々です

私はboto3クライアントを持っています:

boto3.client('kms')

しかしそれは新しい機械で起こり、それらは動的に開閉する。

    if endpoint is None:
        if region_name is None:
            # Raise a more specific error message that will give
            # better guidance to the user what needs to happen.
            raise NoRegionError()

なんでこんなことが起こっているの?そして、なぜ時間の一部だけ?

77
WebQube

どういうわけかkmsクライアントを作成したい地域をboto3に伝えなければなりません。これは、以下のようにregion_nameパラメータを使用して明示的に実行できます。

kms = boto3.client('kms', region_name='us-west-2')

または、次のように~/.aws/configファイルでプロフィールに関連付けられたデフォルトの地域を設定できます。

[default]
region=us-west-2

あるいは、次のように環境変数を使用することもできます。

export AWS_DEFAULT_REGION=us-west-2

しかし、あなたはboto3にどの地域を使うべきかを伝える必要があります。

172
garnaat

デフォルトでは、botoはaws cliに設定されている地域を選択します。 #aws configureコマンドを実行してEnterキーを押すと(地域を指定してaws cliに設定したクレジットが表示されます)、地域を確認できます。

2
josh eversman

region_nameパラメータを渡すのではなく、スクリプト自体に環境変数を設定することもできます。

os.environ['aws_default_region'] = 'your_region_name'

1
Abhishek Garg
os.environ['AWS_DEFAULT_REGION'] = 'your_region_name'

私の場合、感度は重要でした。

0
Anthony G