201

我正在使用 Boto 3 python 库,并希望连接到 AWS CloudFront。我需要指定正确的 AWS 配置文件(AWS 凭证),但是查看官方文档,我看不出有什么方法可以指定它。

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

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

4

4 回答 4

349

我认为文档在揭露如何做到这一点方面并不出色。但是,它一直是受支持的功能,并且在此拉取请求中有一些详细信息。

所以有三种不同的方法可以做到这一点:

选项 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')
于 2015-10-28T15:41:31.690 回答
60

执行此操作以使用名称为“dev”的配置文件:

session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)
于 2017-09-04T16:40:33.750 回答
56

boto3 文档的这一部分很有帮助。

这对我有用:

session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
于 2018-05-03T17:59:21.650 回答
8

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

于 2019-07-31T18:54:33.083 回答