もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

awsのパラメータストア便利

はじめに

こんばんは。

めちゃめちゃ何番煎じかというはなしですが、すごく便利だったのでブログにしときます。

データベースのパスワードとか、AWSのアクセスキーとかどうやってもたせたらいいかなーといつも思ってて、色々調べてたんですが、パラメータストアがとても便利でした。

参考サイト

使ってますか? パラメータストア

本題

こんな感じで登録しました。

f:id:kojirooooocks:20200802224934p:plain

すごく便利だなーと思ったのは、 階層でもてるというところでした。

画像でいうと /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さわって、インフラ屋さんが神だということを再認識しました。

現場からは以上です。