Подтвердить что ты не робот

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

Почему это происходит? и почему только часть времени?

4b9b3361

Ответ 1

Так или иначе, вы должны сказать boto3 в каком регионе вы желать kms клиент должен быть создан. Это можно сделать явно, используя параметр 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, какой регион использовать.

Ответ 2

Я полагаю, что по умолчанию boto выбирает регион, заданный в aws cli. Вы можете запустить команду #aws configure и дважды нажать клавишу ввода (она показывает, какие кредиты вы установили в aws cli с регионом), чтобы подтвердить свой регион.

Ответ 3

Вы также можете установить переменные окружения в самом скрипте, а не передавать параметр region_name

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

чувствительность к регистру может иметь значение.

Ответ 4

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

В моем случае чувствительность имела значение.