Closed5
dynamodb-local のTable をyaml template から作成したい
概要
DynamoDB を使った開発の際、Local Test やCI 環境においてdynamodb-local を使うことが多いのだが、Table の作成方法で度々困ってしまう。
Go の開発での選択肢はこんな感じで、
-
aws dynamodb create-table
-
--cli-input-json
option によりjson file を読み込むことでCFn template に記述した内容をそのまま反映できるが、yaml 形式に対応していない
-
- aws sdk を利用する
- Table 定義もそのプログラミング言語で記述する前提になり、template との二重管理になる
-
guregu などのThird party client を利用する
- aws sdk より記述が楽だが二重管理は変わらず、現状aws sdk v2 には対応していない
それぞれデメリットがあり綺麗に解決できない。
やはり二重管理は避けたい*ので、aws cli で検討してみる。
yaml が使えない問題への対応は
- 初めからjson で書く
- yaml をjson に変換して読み込む
のどちらかになる。
個人的にjson を書いて管理していくのは辛いので2 の方向で。
jq やらを使った変換は沼にハマりそうだなあと調べてみたらこんなツールを見つけた。
結構使われているみたいで良さそうだが、CI 環境でのinstall が増えるので少し躊躇。aws dynamodb create-table
にはdynamodb のattributes(propertires) を与えないといけないため、CFn template を変換するaws-cfn-template-flip
は今回の用途に合いづらい。
一応、attributes を別のtemplate file に切り出したり jq と組み合わせたりすると呼び出すことは可能ではあるが、Reference が利用できないなど制限が大きいためやはりこれを使うのは難しそう。
ということでAWS CDK を使いましょう。
このスクラップは2022/03/28にクローズされました