AWS CLI profileをいい感じに切り替える
背景
AWSアカウントをいくつも使っている場合、~/.aws/config に profile を設定すると思う。
profileの切り替えるためには環境変数 AWS_PROFILE を設定するか、コマンドを打つ度に --profile hoge を付ければ良いが、アカウントの数が増えて、かつ profile の切り替えが多い場合、これらの作業をいちいちやるのは面倒。
既存の解決方法としてawspがあるが、npmをグローバルインストールしないといけないし微妙….
手元にフィルタリングツールのpecoが入っているのでこれを使って何とかしてみる。
実装
このワンライナーを適当なaliasにしておく。
export AWS_PROFILE=$(sed -n "s/\]//g; s/\[profile //gp" ~/.aws/config | peco)
~/.aws/config の中身は大体こんな感じなので [profile hoge] の行から hoge だけを抜き出してpecoに渡す。
[profile hoge]
source_profile = XXX
role_arn = YYY
(場合によっては ~/.aws/config に [default] があるのでまず閉じ括弧(])を取り除いてから [profile を取り除いている)
あとがき
もっとシンプルに書く方法ありそう。