はじめに
AWSのアカウントを個人用と会社用で切り替えて使うのが思いのほか面倒だったので変更用のコマンドを作成しました。
環境
macOS Catalina 10.15.2
AWSのアカウント情報の確認
AWSのアカウント情報は~/.aws/config
にあります。
以下のような情報が入っています。
$ cat ~/.aws/config
[default]
output = json
region = ap-northeast-1
[profile s3deploy-user]
output = json
region = ap-northeast-1
[profile home-user]
output = json
region = ap-northeast-1
[profile lambada-user]
output = json
region = ap-northeast-1
認証情報は~/.aws/credentials
で確認できます。
アカウントの切り替えには以下のコマンドを実行する必要があります。
# shellを閉じるまで有効
export AWS_DEFAULT_PROFILE=test-user
# 実行時のみ
aws deploy create-application --application-name HelloWorld --profile test-user
コマンドの作成
chmod風にchawsというコマンドで作成することにします。
# chaws
TARGET_FILE=~/.aws/config
PROFILES=()
while read LINE
do
if [[ $LINE =~ ^.*\[profile(.*)\].*$ ]]
then
PROFILES+=(`echo ${BASH_REMATCH[1]} | tr -d " "`)
fi
done < $TARGET_FILE
select res in "${PROFILES[@]}"
do
sed -i -e '/AWS_DEFAULT_PROFILE/d' ~/.zshrc
echo export AWS_DEFAULT_PROFILE=$res >> ~/.zshrc
break
done
これを適当につくったフォルダにいれてパスを通します。
今回は~/bin
フォルダに入れます。
cd ~/bin/
# 実行権限を付与
$ sudo chmod 755 chaws
# 環境変数を追加
$ echo export PATH='~/bin:$PATH' >> ~/.zshrc
# 読み込み
$ source ~/.zshrc
さっそく実行してみます。
$ chaws
1) s3deploy-user
2) home-user
3) lambada-user
# Enter 2
# 確認
$ source ~/.zshrc
$ echo $AWS_DEFAULT_PROFILE
home-user
ちゃんと切り替わりました。
bashを利用している人は、.zshrc
のところを.bash_profile
で動作すると思います。
参考記事
https://qiita.com/ryuzee/items/e3ce493f132f1981f57a
https://qiita.com/JJJJJJJJ/items/cc4357f5ba2a9eed809d