2016-11-02 1 views
22

Ich habe einen boto3 Client:boto3 Client NoRegionError: Sie müssen einen Bereich Fehler angeben, nur manchmal

boto3.client('kms') 

Aber es kommt auf neue Maschinen, Sie öffnen und schließen sich dynamisch.

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

Warum passiert das? und warum nur ein Teil der Zeit?

+0

Da der Boto3-Client das AWS-Profil nicht anhand der Standardmethode für die Anmeldeinformationen finden kann: http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html. – mootmoot

Antwort

47

Auf die eine oder andere Weise müssen Sie boto3 mitteilen, in welcher Region der kms-Client erstellt werden soll.

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

oder Sie können wie in in Ihrer ~/.aws/config Datei mit Ihrem Profil zugeordnet ist, eine Standardregion haben:

[default] 
region=us-west-2 

oder Sie können eine Umgebung verwenden könnte dies ausdrücklich mit dem region_name Parameter wie in getan werden Variable wie in:

export AWS_DEFAULT_REGION=us-west-2 

aber Sie müssen boto3 mitteilen, welche Region zu verwenden ist.

+0

Woher weiß ich selbst, welche Region verwendet werden soll? – jononomo

+0

Wenn Sie versuchen, auf vorhandene Ressourcen zuzugreifen, wählen Sie die Region aus, in der diese Ressourcen vorhanden sind. Wenn Sie neue Ressourcen erstellen, wählen die meisten Personen eine Region, die ihnen geografisch am nächsten ist, um schnellere Antwortzeiten zu erzielen. Nicht alle Regionen unterstützen die gleichen Dienste. Wenn Sie also einen bestimmten Dienst benötigen, müssen Sie eine Region auswählen, die diese Dienste unterstützt. – garnaat

+0

Ich denke, meine Frage ist: Woher weiß ich, welche Region ich bereits ausgewählt habe? Ich nehme an, es muss irgendwo in der AWS UI sein ... – jononomo

Verwandte Themen