amazon-web-services - 从 python 获取 boto3 配置文件设置
问题描述
Boto 和 aws-cli 用户在一系列不同配置文件下的一个或多个文件(例如 ~/.aws/config)中编写 ini 样式的配置。我正在编写一个包装 boto API 调用的库,但我想根据用户的活动配置文件设置(即 AWS_PROFILE 和朋友)更改其行为。
如何以编程方式检索有效的用户配置文件设置(即 boto 默认值,被用户的配置文件设置覆盖,被任何具有优先权的环境变量覆盖)。我对配置文件的“区域”键特别感兴趣,但我怀疑其他键的过程类似。
另一种表述方式是:是否有一个 boto API 调用(或一系列调用)将检索给定 boto 会话的“当前活动/有效”设置?
举个反例:提取用户区域设置的一种非常粗糙、脆弱且不正确的方法是检查环境 AWS_PROFILE,查找 ~.aws/config,并从中解析出关键的“区域”。我宁愿让 boto 应用自己的规则,并提取结果。
解决方案
配置可以从许多不同的地方加载,仅仅查看“AWS_PROFILE”是不正确的。
请参阅在配置计算中应用的配置源列表:https ://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
一种简单的方法是简单地创建一个默认会话(它应用许多配置源),并从创建的对象中提取设置:
import boto3
session = boto3.Session()
print(session.region_name)
推荐阅读
- typescript - 覆盖 Typescript 中一组属性的 getter
- macos - 执行 vagrant up 时在 Mac 上启动 VM 时出现 Vagrant VBoxManage 错误
- markdown - MD046/code-block-style:代码块样式[预期:缩进;实际:围栏]
- azure - 使用 Powershell 将 UPN 列表与分配的 VM 名称匹配
- python - 无法使用请求从网页中抓取 csrf 令牌(在页面源中可用)
- android - 如何使用 Kotlin 中的循环从 JSON 数组打印键值?
- python - Python八进制转十进制
- activecampaign - 是否有 API 驱动的方法来检索 ActiveCampaign 的邮件指标?
- node.js - 在 Typescript 中嵌套一个键的对象组数组
- spring - 如何从其他(Postgres)数据库加载内存数据库中的数据?