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

Python 使用boto3连接到CloudFront时如何选择AWS配置文件,python,amazon-web-services,boto3,Python,Amazon Web Services,Boto3,我正在使用Boto 3 python库,希望连接到AWS CloudFront。 我需要指定正确的AWS配置文件(AWS凭据),但是查看官方文档,我看不到指定它的方法 我正在使用以下代码初始化客户端: client=boto3.client('cloudfront') 但是,这会导致使用默认配置文件进行连接。 我找不到一种可以指定使用哪种配置文件的方法。我认为文档在公开如何操作方面并不出色。不过,它作为一种受支持的功能已经有一段时间了,其中有一些细节 因此,有三种不同的方法可以做到这一点: 选项

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

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

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

我认为文档在公开如何操作方面并不出色。不过,它作为一种受支持的功能已经有一段时间了,其中有一些细节

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

选项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\u name='YOUR\u profile\u name').client('cloudwatch')

环境变量不应该是AWS\u profile吗?谢谢!到目前为止,似乎还没有找到那个信息。不过,我似乎只需要第二步就可以完成这项工作。第一步做了什么?(因为dev变量没有被使用或传递到其他任何东西中?)这些是选项,而不是步骤。在第一个选项中,创建要使用的新会话,而不是默认会话。因此,要使用该会话创建客户机,您可以执行类似于
dev.client('s3')
的操作,而不是
boto3.client('s3')
主题之外的操作,
ipython
对我也很有用。使用
boto3.session.session()获取配置文件列表。可用的\u profiles
-这是一个列表。然后使用您想要的@jordan-phillips.See:和AWS S3中的一个文件,其中包含profiles您尝试在代码中使用这些键了吗?(也可以使用env var对代码隐藏它)
client=boto3.client('s3',aws\u access\u key\u id='',aws\u secret\u access\u key='')