我的代码:
sess = session.Must(session.NewSessionWithOptions(session.Options{
Profile: "gms-ai",
}))我的~/.aws/config
[default]
output = json
region = us-east-1
[profile gms-ai]
output = json
region = us-east-2但是,例如,这是我的部署脚本中的代码片段:
AWS_PROFILE=gms-ai \
aws lambda update-function-code...所以看起来aws cli确实读取了region,但是AWS忽略了它?
发布于 2019-09-23 20:15:43
这是预期的行为。见这里:
默认情况下,SDK只加载共享凭据文件的(~/..aws/凭据)凭据值,所有其他配置都由环境变量、SDK默认值和用户提供的aws.Config值提供。 如果设置了AWS_SDK_LOAD_CONFIG环境变量,或者使用SharedConfigEnable选项创建会话,则将加载完整的共享配置值。这包括凭据、区域和对承担角色的支持。此外,会话将从共享配置文件(~/..aws/ config )和共享凭据文件(~/..aws/凭据)加载其配置。这两个文件具有相同的格式。
链接这里。
因此,只需设置AWS_SDK_LOAD_CONFIG环境变量来读取配置。
https://stackoverflow.com/questions/58069458
复制相似问题