Ich verwende die Boto 3-Python-Bibliothek und möchte eine Verbindung zu AWS CloudFront herstellen. Ich muss das richtige AWS-Profil (AWS-Anmeldeinformationen) angeben, sehe jedoch in der offiziellen Dokumentation keine Möglichkeit, es anzugeben.
Ich initialisiere den Client mit dem Code:
client = boto3.client('cloudfront')
Dies führt jedoch dazu, dass das Standardprofil zum Herstellen einer Verbindung verwendet wird. Ich konnte keine Methode finden, mit der ich angeben kann, welches Profil verwendet werden soll.
python
amazon-web-services
boto3
Nader A. Jabbar
quelle
quelle
client = boto3.client('s3', aws_access_key_id = '<access-key>', aws_secret_access_key = '<secret-key>')
Antworten:
Ich denke, die Dokumente sind nicht wunderbar darin, aufzuzeigen, wie das geht. Es ist jedoch seit einiger Zeit eine unterstützte Funktion, und diese Pull-Anforderung enthält einige Details .
Es gibt also drei verschiedene Möglichkeiten, dies zu tun:
Option A) Erstellen Sie eine neue Sitzung mit dem Profil
Option B) Ändern Sie das Profil der Standardsitzung im Code
Option C) Ändern Sie das Profil der Standardsitzung mit einer Umgebungsvariablen
quelle
dev.client('s3')
anstelle vonboto3.client('s3')
ipython
war auch nützlich für mich.boto3.session.Session().available_profiles
- es ist eine Liste. Verwenden Sie dann die gewünschte @ jordan-phillips.Verwenden Sie dazu ein Profil mit dem Namen 'dev':
quelle
Dieser Abschnitt der boto3-Dokumentation ist hilfreich.
Folgendes hat bei mir funktioniert:
quelle
Fügen Sie der Sitzungskonfiguration einfach ein Profil hinzu, bevor Sie den Client aufrufen.
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')
quelle