我正在使用Boto 3 python库,并想连接到AWS CloudFront。 我需要指定正确的AWS配置文件(AWS凭证),但查看官方文档,我没有办法指定它。
我正在初始化客户端使用的代码: 客户端= boto3.client('cloudfront')
但是,这会导致它使用默认配置文件进行连接。 我找不到可以指定使用哪个概要文件的方法。
我正在使用Boto 3 python库,并想连接到AWS CloudFront。 我需要指定正确的AWS配置文件(AWS凭证),但查看官方文档,我没有办法指定它。
我正在初始化客户端使用的代码: 客户端= boto3.client('cloudfront')
但是,这会导致它使用默认配置文件进行连接。 我找不到可以指定使用哪个概要文件的方法。
当前回答
使用名称为'dev'的配置文件:
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
其他回答
只需在客户端调用之前将概要文件添加到会话配置。 boto3.session.Session (profile_name = YOUR_PROFILE_NAME) .client(监测)
boto3文档的这一部分很有帮助。
以下是对我有效的方法:
session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
使用Session boto3.session.Session:
import boto3
aws_session = boto3.session.Session(profile_name='dev')
s3 = aws_session.resource('s3')
使用资源boto3.resource:
import boto3
boto3.setup_default_session(profile_name='dev')
s3 = boto3.resource('s3')
3-或者,将环境变量AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY传递给boto3。
import boto3
aws_session = boto3.Session(
aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)
s3 = aws_session.resource('s3')
使用名称为'dev'的配置文件:
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
我认为这些医生并没有很好地揭示如何做到这一点。不过,它已经成为一个受支持的特性有一段时间了,在这个拉请求中有一些细节。
有三种不同的方法:
选项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')