web-dev-qa-db-ja.com

boto3を使用してCloudFrontに接続するときにAWSプロファイルを選択する方法

Boto 3 pythonライブラリを使用していて、AWS CloudFrontに接続したい。正しいAWSプロファイル(AWS資格情報)を指定する必要がありますが、公式ドキュメントを見ると、指定する方法がありません。

コードを使用してクライアントを初期化しています:client = boto3.client('cloudfront')

ただし、これにより、デフォルトのプロファイルを使用して接続されます。使用するプロファイルを指定できる方法が見つかりませんでした。

82
Nader A. Jabbar

ドキュメントは、これを行う方法を公開するのは素晴らしいことではないと思います。ただし、これは以前からサポートされている機能であり、この プルリクエスト には詳細があります。そのため、これを行うには3つの方法があります。

a)プロファイルで新しいセッションを作成します

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

b)コードでデフォルトセッションのプロファイルを変更する

    boto3.setup_default_session(profile_name='dev')

c)環境変数を使用してデフォルトセッションのプロファイルを変更する

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

「dev」という名前のプロファイルを使用するには、これを実行します。

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

このセクション boto3のドキュメントが役立ちます。

ここに私のために働いたものがあります:

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

クライアントを呼び出す前に、プロファイルをセッション構成に追加するだけです。 boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')

1
MrKulli