🔖

DynamoDB JSON と通常 JSON の相互変換用 CLI ツールを作った

に公開

作ったもの

https://github.com/guitarinchen/ddbjson

DynamoDB JSON と通常 JSON の相互変換用 CLI ツールを作成しました。既に duartealexf/ddbjson という機能としても十分な素晴らしいツールがあるのですが、こちらは JavaScript 製で利用 (インストール) のために Node.js を必要としており、個人的にはシングルバイナリの方が好みであったため Go で自作するに至りました。

使用方法

通常 JSON から DynamoDB JSON への変換

ddbjson marshall <from>

JSON ファイル

// user.json
{"id":23,"name":"John Doe"}
ddbjson marshall user.json

# output: {"id":{"N":"23"},"name":{"S":"John Doe"}}

JSON 文字列

ddbjson marshall '{"id":23,"name":"John Doe"}'

# output: {"id":{"N":"23"},"name":{"S":"John Doe"}}

標準入力

echo '{"id":23,"name":"John Doe"}' | ddbjson marshall -

# output: {"id":{"N":"23"},"name":{"S":"John Doe"}}

DynamoDB JSON から通常 JSON への変換

ddbjson unmarshall <from>

JSON ファイル

// ddb_user.json
{"id":{"N":"23"},"name":{"S":"John Doe"}}
ddbjson unmarshall ddb_user.json

# output: {"id":23,"name":"John Doe"}

JSON 文字列

ddbjson unmarshall '{"id":{"N":"23"},"name":{"S":"John Doe"}}'

# output: {"id":23,"name":"John Doe"}

標準入力

echo '{"id":{"N":"23"},"name":{"S":"John Doe"}}' | ddbjson unmarshall -

# output: {"id":23,"name":"John Doe"}

AWS CLI (aws dynamodb) との組み合わせ

put-item

aws dynamodb put-item --table users --item "$(ddbjson marshall '{"id":23,"name":"John Doe"}')"

get-item

aws dynamodb get-item --table users --key '{"id":{"N":"23"}}' --query 'Item' | go run main.go marshall -

Discussion