无可用可写主目录时AWS CLI无法识别AWS_CONFIG_FILE问题咨询
问题出现原因
- AWS CLI 默认行为限制:默认情况下
aws configure list-profiles命令仅会读取AWS_SHARED_CREDENTIALS_FILE指向的凭证文件中的profile条目,不会主动加载AWS_CONFIG_FILE对应的配置文件里的自定义profile。如果需要同时加载配置文件的profile,需要显式开启环境变量AWS_SDK_LOAD_CONFIG=1。 - 环境变量配置异常:可能存在环境变量未正确导出(仅赋值未加
export命令)、路径拼写错误(Linux环境区分大小写,变量名必须为全大写的AWS_CONFIG_FILE,文件路径需和实际存放路径完全匹配)、容器启动脚本重置了自定义环境变量的情况。 - 权限问题:需要确认运行aws cli的用户对
/tmp下存放的配置文件有可读权限。
解决方案
方式1:补充环境变量适配默认行为
在执行aws命令前先执行以下命令配置环境变量即可:
export AWS_SDK_LOAD_CONFIG=1 export AWS_SHARED_CREDENTIALS_FILE=/tmp/你的凭证文件路径 export AWS_CONFIG_FILE=/tmp/你的配置文件路径
配置完成后再执行aws configure list-profiles就会同时列出两个文件中的所有profile。
方式2:直接通过命令参数指定文件路径
aws cli提供了全局参数可以直接指定两个配置文件的路径,优先级高于环境变量,无需额外配置环境变量,示例如下:
# 列出所有profile aws configure list-profiles \ --credentials-file /tmp/你的凭证文件路径 \ --config-file /tmp/你的配置文件路径 # 调用其他aws服务的示例,参数同样生效 aws s3 ls \ --credentials-file /tmp/credentials \ --config-file /tmp/config \ --profile 你的自定义profile名
如果需要验证配置加载逻辑是否符合预期,可以加上--debug参数执行命令,查看日志中输出的配置文件读取路径,排查加载异常问题。
内容的提问来源于stack exchange,提问作者peez80
相关产品推荐
相关产品推荐

