J'utilise la bibliothèque python Boto 3 et je souhaite me connecter à AWS CloudFront. Je dois spécifier le bon profil AWS (AWS Credentials), mais en regardant la documentation officielle, je ne vois aucun moyen de le spécifier.
J'initialise le client en utilisant le code:
client = boto3.client('cloudfront')
Cependant, cela se traduit par l'utilisation du profil par défaut pour se connecter. Je n'ai pas trouvé de méthode permettant de spécifier le profil à utiliser.
python
amazon-web-services
boto3
Nader A. Jabbar
la source
la source
client = boto3.client('s3', aws_access_key_id = '<access-key>', aws_secret_access_key = '<secret-key>')
Réponses:
Je pense que les documents ne sont pas merveilleux pour exposer comment faire cela. Cependant, cette fonctionnalité est prise en charge depuis un certain temps et il y a quelques détails dans cette pull request .
Il existe donc trois façons différentes de procéder:
Option A) Créer une nouvelle session avec le profil
Option B) Changer le profil de la session par défaut dans le code
Option C) Changer le profil de la session par défaut avec une variable d'environnement
la source
dev.client('s3')
place deboto3.client('s3')
ipython
a également été utile pour moi.boto3.session.Session().available_profiles
- c'est une liste. Ensuite, utilisez celui que vous voulez @ jordan-phillips.Faites ceci pour utiliser un profil avec le nom 'dev':
la source
Cette section de la documentation de boto3 est utile.
Voici ce qui a fonctionné pour moi:
la source
Ajoutez simplement le profil à la configuration de session avant l'appel du client.
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')
la source