boto3 client NoRegionError: vous devez spécifier une erreur de région seulement parfois
J'ai un client boto3:
boto3.client('kms')
Mais cela arrive sur les nouvelles machines, elles s'ouvrent et se ferment dynamiquement.
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()
Pourquoi cela arrive-t-il? et pourquoi seulement une partie du temps?
D'une manière ou d'une autre, vous devez indiquer à boto3 dans quelle région vous souhaitez que le client kms
soit créé. Cela pourrait être fait explicitement en utilisant le paramètre region_name
comme dans:
kms = boto3.client('kms', region_name='us-west-2')
ou vous pouvez associer une région par défaut à votre profil dans votre fichier ~/.aws/config
, comme suit:
[default]
region=us-west-2
ou vous pouvez utiliser une variable d'environnement comme dans:
export AWS_DEFAULT_REGION=us-west-2
mais vous devez dire à boto3 quelle région utiliser.
Je pense que, par défaut, boto choisit la région située dans aws cli. Vous pouvez exécuter la commande #aws configure et appuyer sur Entrée (elle indique les classements que vous avez définis dans aws cli avec région) deux fois pour confirmer votre région.
vous pouvez également définir des variables d'environnement dans le script lui-même, plutôt que de transmettre le paramètre nom_région
os.environ['aws_default_region'] = 'your_region_name'
la sensibilité à la casse peut avoir de l'importance.
os.environ['AWS_DEFAULT_REGION'] = 'your_region_name'
Dans mon cas, la sensibilité importait.