percolでaws profileをかんたんに切り替える

概要

~/.aws/credentials内のprofileが複数あると、毎回毎回--profileでprofile名を指定するのが面倒です。

AWS Command Line Interface の設定にあるように「AWS_DEFAULT_PROFILE」をセットしてしまえば後は--profile指定は不要にできるのですが、そもそもprofile名も覚えてられないので、percolで入力しながら選択対象を絞り込んでいきたい。

ということで、つくりました。

percolが導入済みであることが前提です。

~/.bash_profileに以下のaliasを追記

alias aws-profile='export AWS_DEFAULT_PROFILE=`grep "^\[.*\]" ~/.aws/credentials | tr -d "[" | tr -d "]" | percol`; export AWS_PROFILE=${AWS_DEFAULT_PROFILE}; aws-whoami'
alias aws-whoami='echo "Current AWS Profile: ${AWS_DEFAULT_PROFILE}"'

AWS_PROFILEはSDKで使われます

これでシェルでaws-profileとaws-whoamiというコマンドが実行できるようになります。

aws-profile

~/.aws/credentialsからprofile名を絞り込んで指定できます。

$ aws-profile

QUERY>
default
user2
user3

実行すると上記のようになりますので、入力しつつ絞込をかけてprofileを指定して切り替えることができます。

$ env | grep AWS_DEFAULT_PROFILE
AWS_DEFAULT_PROFILE=user2

指定したprofile名がAWS_DEFAULT_PROFILEにセットされます。

aws-whoami(おまけ)

いまどのprofileが指定されているかわからない状態でaws cliを叩くのはどうかと思うので、 aws-whoamiと入力すると現在のprofile名が表示されるようにしてみました。

AWS_DEFAULT_PROFILEをechoしているだけです。

まとめ

これでprofileの切り替えが簡単にできました。

ツール書こうかと思いましたがpercolのおかげでかんたんに実現できてうれしい。