it-swarm.com.de

boto3-Client NoRegionError: Sie müssen nur gelegentlich einen Regionsfehler angeben

Ich habe einen boto3-Client:

boto3.client('kms')

Aber es passiert auf neuen Maschinen, sie öffnen und schließen 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 dies? und warum nur ein Teil der Zeit?

87
WebQube

Auf die eine oder andere Weise müssen Sie boto3 mitteilen, in welcher Region der Client kms erstellt werden soll. Dies könnte explizit mit dem Parameter region_name Erfolgen, wie in:

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

oder Sie können eine Standardregion mit Ihrem Profil in Ihrer ~/.aws/config - Datei verknüpfen, wie in:

[default]
region=us-west-2

oder Sie können eine Umgebungsvariable wie folgt verwenden:

export AWS_DEFAULT_REGION=us-west-2

sie müssen jedoch boto3 mitteilen, welche Region verwendet werden soll.

196
garnaat

Ich glaube, standardmäßig wählt boto die Region aus, die in aws cli festgelegt ist. Sie können den Befehl #aws configure ausführen und die Eingabetaste drücken (er zeigt an, welche Creds Sie in aws cli with region festgelegt haben), um Ihre Region zu bestätigen.

3
josh eversman

sie können Umgebungsvariablen auch im Skript selbst festlegen, anstatt den Parameter region_name zu übergeben

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

groß-/Kleinschreibung kann von Bedeutung sein.

2
Abhishek Garg
os.environ['AWS_DEFAULT_REGION'] = 'your_region_name'

In meinem Fall zählte die Sensibilität.

1
Anthony G