環境変数を追加するのが面倒
パラメーターストアに環境変数をぽちぽち登録するのが苦行で仕方がありませんでした。
12個ぐらい一気に追加されると、それをポチポチすると5-10分かかってしまいます。
そこで、慣れないシェルスクリプトをつかって一括登録できるようにスクリプトを書きました。
慣れないので2時間ぐらいかかりました。笑
前提
AWS CLI が必要です。
シェルスクリプト
put_env.sh
#!/bin/bash
## Default値
profile='default'
data_type='String'
desc='from post_envs.sh'
prefix=''
##
function usage {
cat <<EOM
Usage: $(basename "$0") [OPTION]... filename
-h Help Display usage.
-a Prefix Prefix of parameter store's key.
-d Description Parameter Description.
-t Data Type Data type of parameter store. Default value is "String".
-p Aws Pofile Default value is "default".
EOM
exit 2
}
echo $@
while getopts ":a:d:p:t:" optKey; do
case "$optKey" in
a)
prefix=${OPTARG}
;;
d)
desc=${OPTARG}
;;
p)
profile=${OPTARG}
;;
t)
data_type=${OPTARG}
;;
'-h'|'--help'|* )
usage
;;
esac
done
# オプションとその値のかずだけ引数配列からshiftさせる
shift $(($# - 1))
if [ "$1" != "" ]; then
filename=$1
fi
if [ "$filename" = "" ]; then
echo "\n[missing argv error] missing argv filename.\n"
usage
fi
cat ${filename} | while read line
do
key=`echo ${line} | cut -d '=' -f 1 | grep -v '^\s*#'`
val=`echo ${line} | cut -d '=' -f 2`
if [ "$key" != "" ]; then
echo "[sending...] ${prefix}${key}=${val}"
aws ssm --profile ${profile} put-parameter --name "${prefix}${key}" --value "${val}" --type ${data_type} --description "${desc}"
fi
done
使用例
例えば、環境変数をまとめて以下のようなファイルがあったとします。
.env-to-post
# hogeにつかう
HOGE=hoge
# fugaにつかう
FUGA=fuga
その場合は、
sh put_env.sh .env-to-post
で登録できます。
オプション
オプション | 備考 |
---|---|
-a | パラメータのキーにプレフィックスをつけることができます。 |
-d | パラメータの説明分を指定できます。一括で同じものになります。 |
-p | AWS CLI のプロファイル名です。 |
-t | パラメータのタイプです。String以外にもSecureStringなどがあります。 |
コメント
せっかく作ったので、どなたかの参考になったら 幸甚の至り です。
シェルスクリプト筋がか細いので、シェルスクリプトつよつよの方がいたら改善案等お待ちしております