2015-10-27 6 views
18

Sto utilizzando la libreria Python di Boto 3 e desidero connettermi a AWS CloudFront. Ho bisogno di specificare il profilo AWS corretto (credenziali AWS), ma guardando la documentazione ufficiale, non vedo alcun modo per specificarlo.Come scegliere un profilo AWS quando si utilizza boto3 per connettersi a CloudFront

sto inizializzazione del client utilizzando il codice: client = boto3.client('cloudfront')

Tuttavia, questo si traduce in esso utilizzando il profilo predefinito per la connessione. Non sono riuscito a trovare un metodo in cui sia possibile specificare quale profilo utilizzare.

risposta

50

Penso che i documenti non siano meravigliosi nell'esporre come farlo. È stata una funzionalità supportata per qualche tempo, tuttavia, e ci sono alcuni dettagli in questo pull request. Quindi ci sono tre modi per farlo:

  1. creare una nuova sessione con il profilo

    dev = boto3.session.Session(profile_name='dev') 
    
  2. cambiare il profilo della sessione di default nel codice

    boto3.setup_default_session(profile_name='dev') 
    
  3. Cambiare la profilo della sessione predefinita con una variabile di ambiente

    $ AWS_PROFILE=dev ipython 
    >>> import boto3 
    >>> s3dev = boto3.resource('s3') 
    
+1

Non dovrebbe la variabile ENV essere AWS_PROFILE? –

+0

Grazie per quello! non sembra aver trovato quell'informazione da nessuna parte finora. A quanto pare ho solo bisogno del passaggio 2 per farlo funzionare. Cosa ha fatto il passaggio 1? (poiché la variabile dev non viene utilizzata o passata a qualcos'altro?) – Mark

+7

Queste sono opzioni, non passaggi. Nella prima opzione si crea una nuova sessione da utilizzare piuttosto che la sessione predefinita. Quindi, per creare un client con quella sessione, dovresti fare qualcosa come "dev.client ('s3')' invece di 'boto3.client ('s3')' –

7

fare questo per utilizzare un profilo con il nome 'dev':

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