python linux boto3 aws-kms

python - cliente boto3 NoRegionError: debe especificar un error de región solo a veces



linux aws-kms (4)

Tengo un cliente boto3:

boto3.client(''kms'')

Pero sucede en máquinas nuevas, se abren y cierran dinámicamente.

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

¿Por qué está pasando esto? ¿Y por qué solo una parte del tiempo?


Creo que, por defecto, boto elige la región que se establece en aws cli. Puede ejecutar el comando #aws configure y presionar enter (muestra los créditos que ha establecido en aws cli con region) dos veces para confirmar su región.


De una forma u otra, debe decirle a boto3 en qué región desea que se cree el cliente kms . Esto podría hacerse explícitamente usando el parámetro region_name como en:

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

o puede tener una región predeterminada asociada con su perfil en su archivo ~/.aws/config como en:

[default] region=us-west-2

o puede usar una variable de entorno como en:

export AWS_DEFAULT_REGION=us-west-2

pero necesita decirle a boto3 qué región usar.


También puede establecer variables de entorno en el script mismo, en lugar de pasar el parámetro region_name

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

mayúsculas y minúsculas pueden importar.


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

En mi caso, la sensibilidad importaba.