240

私は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()

なぜこうなった?そして、なぜ一部の時間だけですか?

4

8 に答える 8

514

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 に指示する必要があります。

于 2016-11-02T10:39:40.753 に答える
4

デフォルトでは、boto は aws cli で設定されているリージョンを選択すると思います。コマンド #aws configure を実行し、Enter キーを 2 回押して (リージョンを指定して AWS cli で設定した資格情報を表示します)、リージョンを確認します。

于 2018-07-24T18:34:38.870 に答える
1

ラムダを使用している場合は、ラムダがデプロイされているリージョンを使用することをお勧めします。次を使用できます。

import boto3
import json
import os

def lambda_handler(event, context):
    region = os.environ['AWS_REGION']
    print('Lambda region: ', region)
    kms = boto3.client('kms', region_name=region)
于 2022-02-12T14:03:15.353 に答える
1

CloudFormation テンプレートを使用している方向け。AWS_DEFAULT_REGIONUserData と を使用して環境変数を設定できますAWS::Region。例えば、

MyInstance1:
    Type: AWS::EC2::Instance                
    Properties:                           
        ImageId: ami-04b9e92b5572fa0d1 #ubuntu
        InstanceType: t2.micro
        UserData: 
            Fn::Base64: !Sub |
                    #!/bin/bash -x

                    echo "export AWS_DEFAULT_REGION=${AWS::Region}" >> /etc/profile
于 2019-12-24T05:27:08.233 に答える