Boto 3 pythonライブラリを使用していて、AWS CloudFrontに接続したい。正しいAWSプロファイル(AWS資格情報)を指定する必要がありますが、公式ドキュメントを見ると、指定する方法がありません。
コードを使用してクライアントを初期化しています:client = boto3.client('cloudfront')
ただし、これにより、デフォルトのプロファイルを使用して接続されます。使用するプロファイルを指定できる方法が見つかりませんでした。
ドキュメントは、これを行う方法を公開するのは素晴らしいことではないと思います。ただし、これは以前からサポートされている機能であり、この プルリクエスト には詳細があります。そのため、これを行うには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')
「dev」という名前のプロファイルを使用するには、これを実行します。
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
このセクション boto3のドキュメントが役立ちます。
ここに私のために働いたものがあります:
session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
クライアントを呼び出す前に、プロファイルをセッション構成に追加するだけです。 boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')