我有一个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()

为什么会这样?为什么只是部分时间?


当前回答

我相信,默认情况下,boto选择在aws cli中设置的区域。您可以运行命令#aws configure并按enter(它会显示您在aws cli with region中设置的信用)两次来确认您的区域。

其他回答

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

对我来说,敏感很重要。

您还可以在脚本本身中设置环境变量,而不是传递region_name参数

操作系统。environ['AWS_DEFAULT_REGION'] = 'your_region_name'

大小写敏感性可能很重要。

我相信,默认情况下,boto选择在aws cli中设置的区域。您可以运行命令#aws configure并按enter(它会显示您在aws cli with region中设置的信用)两次来确认您的区域。

地区= [ “eu-north-1”、“ap-south-1’,‘eu-west-3’,‘eu-west-2’, 'eu-west-1', 'ap-northeast-3', 'ap-northeast-2' 'ap-northeast-1' 'sa-east-1' 'ca-central-1', “ap-southeast-2”、“eu-central-1’,‘us-east-1’,‘us-east-2’, “us-west-1”、“us-west-2 '] 对于地区: KMS = boto3。客户端('kms', region_name= r)

您也可以运行以下命令(aws cli)

aws configure --profile $PROFILE_NAME

它会提示您输入区域。

注意~/。aws /配置是:

[default]
region = ap-southeast-1
output = json

[profile prod]
region = ap-southeast-1
output = json

[profile配置文件名称]