DynamoDBへのデータ登録を簡易化するためのツールを作ります。
BatchWriteItemというcommandを使用することで一括のデータ登録ができます。
batch-write-item — AWS CLI 1.20.48 Command Reference
今回は上記commandに使用するインプットデータ(jsonファイル)を自動生成します。
ツールはPowershellを使用します。
■ツールの概要
ツールでインプットデータを生成する元データは出来れば設計書を流用し、
新たな加工の手間が無く、そのまま使用できれば理想的かと思います。
今回はエクセルファイルを元データとして、
シート単位にテーブルの登録したい情報を記載しておけば、
インプットデータが生成できるツールとします。
■前提条件
PowershellでExcelオブジェクトを使用する為、
Excelがインストールされている環境である必要があります。
※ExcelがインストールされていなくてもClosedXMLという代替えのモジュールが
ありますが、それはまた別途記載します。
また、現状の仕様ではサポートしている型はBOOLとS(文字列)、N(数値)のみになります。※将来的には全ての型をサポートしたいが一旦上記の型のみで個人的には満足しています。
■実装方法
ソースコードのボリュームが結構おおきくなったので、
実装方法の説明は省略します。とりあえずコピペでps1ファイルで保存します。
■使用方法
1.ツールと"data"フォルダを任意フォルダに配置します。
2."data"フォルダに下記のようなエクセルファイルを配置します。
※形式を変えると動かなくなるので要注意
3.ツールを右クリック->「PowerShellで実行」をクリックで実行
⇒下記のようにA列で指定したデータセットID名でjsonファイルが出来上がる。
4.下記aws cliを使用してデータ登録
一番最後の引数にツールで出力されたjsonファイルを指定します。
aws dynamodb batch-write-item --request-items file://Dataset-001.json
AWSコンソール上で結果を表示します。
エクセルファイルのシート名にしたテーブルにデータがちゃんとデータ登録されています!
ここまで 読んで頂きありがとうございました。
よければフォローお願いします!