使用 boto3 连接到 CloudFront 时如何选择 AWS 配置文件
How to choose an AWS profile when using boto3 to connect to CloudFront
我正在使用 Boto 3 python 库,并且想要连接到 AWS CloudFront。
我需要指定正确的 AWS 配置文件 (AWS Credentials),但是查看官方文档,我看不到指定它的方法。
我正在使用以下代码初始化客户端:
client = boto3.client('cloudfront')
但是,这会导致它使用默认配置文件进行连接。
我找不到可以指定要使用哪个配置文件的方法。
我认为文档在揭示如何执行此操作方面并不出色。不过,它已成为受支持的功能已有一段时间了,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')
执行此操作以使用名称为 'dev' 的配置文件:
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
This section 的 boto3 文档很有帮助。
以下是对我有用的方法:
session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
只需在客户端调用之前将配置文件添加到会话配置。
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')
我正在使用 Boto 3 python 库,并且想要连接到 AWS CloudFront。 我需要指定正确的 AWS 配置文件 (AWS Credentials),但是查看官方文档,我看不到指定它的方法。
我正在使用以下代码初始化客户端:
client = boto3.client('cloudfront')
但是,这会导致它使用默认配置文件进行连接。 我找不到可以指定要使用哪个配置文件的方法。
我认为文档在揭示如何执行此操作方面并不出色。不过,它已成为受支持的功能已有一段时间了,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')
执行此操作以使用名称为 'dev' 的配置文件:
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
This section 的 boto3 文档很有帮助。
以下是对我有用的方法:
session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
只需在客户端调用之前将配置文件添加到会话配置。
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')