web-dev-qa-db-fra.com

Comment choisir un profil AWS lors de l'utilisation de boto3 pour se connecter à CloudFront

J'utilise la bibliothèque Boto 3 python et je souhaite me connecter à AWS CloudFront. Je dois spécifier le profil AWS correct (informations d'identification AWS), mais si je regarde 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, le profil par défaut est utilisé pour se connecter. Je n'ai pas trouvé de méthode pour spécifier le profil à utiliser.

82
Nader A. Jabbar

Je pense que les docs ne sont pas très doués pour expliquer comment faire cela. Cependant, cette fonctionnalité est supportée depuis un certain temps, et il y a quelques détails dans cette demande de pull . Donc, il y a trois façons de faire cela:

a) Créer une nouvelle session avec le profil

    dev = boto3.session.Session(profile_name='dev')

b) Modifier le profil de la session par défaut en code

    boto3.setup_default_session(profile_name='dev')

c) Modifier le profil de la session par défaut avec une variable d'environnement

    $ AWS_PROFILE=dev ipython
    >>> import boto3
    >>> s3dev = boto3.resource('s3')
153
Jordon Phillips

Faites ceci pour utiliser un profil avec le nom 'dev':

session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)
23
asmaier

Cette section de la documentation de boto3 est utile.

Voici ce qui a fonctionné pour moi:

session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
9
mgig

Il suffit d'ajouter un profil à la configuration de la session avant l'appel du client. boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')

1
MrKulli