App Engineerの開発ノート

AWS、Flutterや開発活動に役立つツール作りなど

DynamoDBへのデータ登録を楽にする

f:id:Simoroid:20210928002145p:plain
DynamoDBへのデータ登録を簡易化するためのツールを作ります。
BatchWriteItemというcommandを使用することで一括のデータ登録ができます。
batch-write-item — AWS CLI 1.20.48 Command Reference

今回は上記commandに使用するインプットデータ(jsonファイル)を自動生成します。
ツールはPowershellを使用します。

■ツールの概要
ツールでインプットデータを生成する元データは出来れば設計書を流用し、
新たな加工の手間が無く、そのまま使用できれば理想的かと思います。
f:id:Simoroid:20210928000012p:plain

今回はエクセルファイルを元データとして、
シート単位にテーブルの登録したい情報を記載しておけば、
インプットデータが生成できるツールとします。

■前提条件

PowershellExcelオブジェクトを使用する為、
Excelがインストールされている環境である必要があります。
ExcelがインストールされていなくてもClosedXMLという代替えのモジュールが
ありますが、それはまた別途記載します。

また、現状の仕様ではサポートしている型はBOOLとS(文字列)、N(数値)のみになります。※将来的には全ての型をサポートしたいが一旦上記の型のみで個人的には満足しています。

■実装方法

ソースコードのボリュームが結構おおきくなったので、
実装方法の説明は省略します。とりあえずコピペでps1ファイルで保存します。

■使用方法

1.ツールと"data"フォルダを任意フォルダに配置します。
f:id:Simoroid:20210928000039p:plain

2."data"フォルダに下記のようなエクセルファイルを配置します。
※形式を変えると動かなくなるので要注意
f:id:Simoroid:20210928000118p:plain

3.ツールを右クリック->「PowerShellで実行」をクリックで実行
⇒下記のようにA列で指定したデータセットID名でjsonファイルが出来上がる。

f:id:Simoroid:20210928000129p:plainf:id:Simoroid:20210928000139p:plain

4.下記aws cliを使用してデータ登録
一番最後の引数にツールで出力されたjsonファイルを指定します。

aws dynamodb batch-write-item --request-items file://Dataset-001.json

f:id:Simoroid:20210928000157p:plain

AWSコンソール上で結果を表示します。
f:id:Simoroid:20210928000206p:plain

エクセルファイルのシート名にしたテーブルにデータがちゃんとデータ登録されています!

ここまで 読んで頂きありがとうございました。
よければフォローお願いします!