Boto和aws-cli用户使用一系列不同的配置文件在一个或多个文件(例如〜/ .aws / config)中编写ini样式的配置。我正在写一个包装boto API调用的库,但是我想根据用户的活动配置文件设置(即AWS_PROFILE和好友)更改其行为。
如何以编程方式检索有效用户的配置文件设置(即boto默认设置,被用户的配置文件设置覆盖,被任何具有优先级的环境变量覆盖)。我对配置文件的“区域”键特别感兴趣,但是我怀疑其他键的操作过程与此类似。
另一种说法是:是否存在一个boto API调用(或一系列调用),它将检索给定boto会话的“当前有效/有效”设置?
作为反例:提取用户区域设置的一种非常粗略,脆弱且不正确的方法是检查环境AWS_PROFILE,寻找〜.aws / config,然后从中解析出关键的“区域”。我宁愿让boto应用自己的规则,然后提取结果。
答案 0 :(得分:0)
答案 1 :(得分:0)
可以从许多不同的位置加载配置,仅查看“ AWS_PROFILE”是不正确的。
请参阅在配置计算中应用的配置源列表:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
一种简单的方法是简单地创建一个默认会话(适用于许多配置源),然后从创建的对象中提取设置:
import boto3
sess = boto3.Session()
print(session.region_name)
答案 2 :(得分:0)
我还没有测试过,但我认为这是一个很好的起点:
https://stackoverflow.com/a/41270744/220949
特别是对于区域,region_name
中有一个 Session
属性