我有多个AWS账户,根据我在哪个项目目录中,当我在AWS CLI中键入命令时,我想使用不同的项目。
我知道AWS凭证可以通过环境变量传递,所以我认为一个解决方案是根据它所在的目录设置AWS_CONFIG_FILE
,但我不确定怎么做。
使用Mac OS X,AWS版本为aws-cli/1.0.0 Python/2.7.1 Darwin/11.4.2
,我这样做是为了在Rails 4应用程序中使用AWS。
答案 0 :(得分:3)
我建议使用different profiles in the configuration file,只需指定所需的配置文件:
aws --profile <your-profile> <command> <subcommand> [parameters]
如果您不想为每个命令键入配置文件,只需运行:
export AWS_DEFAULT_PROFILE=<your-profile>
在一组命令之前。
如果您想以某种方式自动化更改终端中的目录时设置该环境变量的过程,请参阅Dynamic environment variables in Linux?
答案 1 :(得分:1)
我认为您可以为aws命令创建一个别名,该命令将根据您所在的目录导出AWS_CONFIG_FILE变量。如下所示(bash)可能有效。
首先创建以下shell脚本,让我们称之为match.sh并将其放在/ home / user /
中export AWS_CONFIG_FILE=`if [[ "$PWD" =~ "MATCH" ]]; then echo "ABC"; else echo "DEF"; fi`
aws "$@"
现在在〜/ .bashrc脚本中定义别名
alias awsdirbased="/home/user/match.sh $@"
现在每当你想运行“aws”命令而不是运行“awsdirbased”它应该工作