342 votes

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?

676voto

garnaat Points 8095

D'une façon ou d'une autre, vous devez dire boto3 dans la région où vous souhaitez l' kms client d'être créé. Cela pourrait être fait explicitement à l'aide de l' region_name paramètre, comme dans:

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

ou vous pouvez avoir un défaut région associée à votre profil dans votre ~/.aws/config le fichier:

[default]
region=us-west-2

ou vous pouvez utiliser une variable d'environnement comme dans:

export AWS_DEFAULT_REGION=us-west-2

mais vous avez besoin de vous dire boto3 de la région à utiliser.

4voto

josh eversman Points 11

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X