miyasakura’s diary

日記です。

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 に渡してやるだけなのでシンプルで別の場所で定義を再度書く必要もないのでいったんこの方針で。