使用boto3连接到CloudFront时如何选择AWS配置文件

时间:2015-10-27 21:02:50

标签: python amazon-web-services boto3

我正在使用Boto 3 python库,并希望连接到AWS CloudFront。 我需要指定正确的AWS Profile(AWS Credentials),但查看官方文档,我认为无法指定它。

我正在使用代码初始化客户端: client = boto3.client('cloudfront')

但是,这导致它使用默认配置文件进行连接。 我找不到一种方法可以指定要使用的配置文件。

4 个答案:

答案 0 :(得分:135)

我认为文档在揭露如何做到这一点上并不精彩。不过,它已成为受支持的功能一段时间了,此pull request中有一些细节。所以有三种方法可以做到这一点:

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')

答案 1 :(得分:21)

执行此操作以使用名称为' dev':

的个人资料
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)

答案 2 :(得分:7)

boto3文档的

This section很有帮助。

这对我有用:

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

答案 3 :(得分:2)

只需在客户端调用之前将配置文件添加到会话配置即可。 boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')