[小ネタ]JSONを展開してCloudFormationスタックのパラメータを指定するワンライナーを生成する
AWS CLIからCloudformationのパラメータを指定する文字列をJSONから生成しました。
はじめに
CloudFormation スタックの作成、更新時をCLIから行う場合スタックらパラメータは以下のような形式で指定する必要があります。
ParameterKey=Param1,ParameterValue=value1 \ ParameterKey=Param2,ParameterValue=value12 \
本質的にはタプルのリスト程度しか情報が無いのにタイプ数が多くてうんざります。
JSONファイルとjqを使って生成する
そこで以下のようなJSONファイルを用意します。
{ "Param1": "value1", "Param2": "value12" }
そしてjqにパイプします。
cat params.json | jq -r '. | to_entries | map("ParameterKey=" + .key + ",ParameterValue=" + (.value | tostring) + " \\\\" ) | .[]'
まとめ
JSONファイルの内容を工夫して設定をルートではなくて環境毎の別のキー以下に置いてみたり、yamlを使ってみたりもできると思います。