はじめに
こんばんは。
めちゃめちゃ何番煎じかというはなしですが、すごく便利だったのでブログにしときます。
データベースのパスワードとか、AWSのアクセスキーとかどうやってもたせたらいいかなーといつも思ってて、色々調べてたんですが、パラメータストアがとても便利でした。
参考サイト
本題
こんな感じで登録しました。
すごく便利だなーと思ったのは、 階層でもてるというところでした。
画像でいうと /Staging
という感じで、ステージング環境で使うパラメータとして登録できます。
本番で使いたい場合は /Production
みたいな感じで登録できます。
このデータを取りたい場合、以下みたいなコマンドになると思います。
$ aws ssm get-parameters --name '/Staging/AWS_ACCESS_KEY_ID' --with-decryption | jq -r '.Parameters[].Value'
例えば、この取得したデータを .envに追記する場合とかは以下になるとおもいます。
$ echo -e "AWS_ACCESS_KEY_ID=`aws ssm get-parameters --name '/Staging/AWS_ACCESS_KEY_ID' --with-decryption | jq -r '.Parameters[].Value'`" >> .env
この時点ですげー便利だと自分は思ったんですけど、一気にとって一気に .env に登録できないかなーと思って調べたらできました。
$ aws ssm get-parameters-by-path --path '/Staging' --with-decryption | jq -r '.Parameters | map([.Name[9:], .Value] | join("=")) | join("\n")' >> .env
これで /Staging
の階層に入っているパラメータをすべて取得して .envに追加できます。
パラメータストアが便利っていうのもありますが、jqがとにかく便利というのを再確認できました...w
終わりに
久々に awsさわって、インフラ屋さんが神だということを再認識しました。
現場からは以上です。