CloudFormationの定義からDynamoDB Localにテーブルを作成する
DynamoDBをCloudFormationで作ったは良いけどローカルでdynamodb-localを使って検証する際にどうしようか少し悩んでました。
Terraformにしようかとか、AWS上のテーブル情報を持ってきてどうきするようにしようかとか悩みましたが、結論としてはCloudFormationのyamlファイルから AWS CLI で create-table することに。
for file in `ls *.yaml`; do ruby -e 'require "yaml";require "json";y=YAML.load ARGF.read;puts JSON.pretty_generate y["Resources"]["Table"]["Properties"]' < $file > /tmp/$file aws dynamodb create-table --endpoint-url http://localhost:8000 --cli-input-json file:///tmp/$file done
ちょっと雑ですが、Resources.Table.Properties のデータを --cli-input-json に渡してやるだけなのでシンプルで別の場所で定義を再度書く必要もないのでいったんこの方針で。