Slide 1

Slide 1 text

DynamoDBテーブルにAWS CLIで アイテムを一括登録する方法 2022/6/9 JAWS-UG CLI専門支部 #266R

Slide 2

Slide 2 text

自己紹介 名前 :藤田 直幸 Twitter :@amarelo_n24(コーヒー焙煎人兼エンジニア) Facebook:https://www.facebook.com/naoyuki.fujita.37 取得済AWS認定 :CLF、SAA、DVA、SCS 好きなAWSサービス:AWS CLI、AWS CloudShell、Cloud9 好きなコーヒー豆 :ブラジル ブルボンアマレロ

Slide 3

Slide 3 text

マネコンでDynamoDBテーブルに アイテムを複数追加するのは面倒!!

Slide 4

Slide 4 text

AWS CLIで一括登録できる!

Slide 5

Slide 5 text

1.今回使ったサブコマンド 2.コマンド実行してみた 3.まとめ 話すこと

Slide 6

Slide 6 text

1.今回使うサブコマンド

Slide 7

Slide 7 text

1つ以上のテーブルに複数のアイテムを配置または削除する。 ・JSONファイルを使用 ・最大16MBのデータを送信 ・最大25個のアイテムの書き込みまたは削除操作 ※出典 https://docs.aws.amazon.com/cli/latest/reference/dynamodb/batch-write-item.html サブコマンド:batch-write-item

Slide 8

Slide 8 text

テーブルまたはセカンダリインデックス内のすべてのアイテム にアクセスして、1つ以上のアイテムとアイテム属性を返す。 1回の呼び出しで取得できるデータ量は1MBまで。 ※出典 https://docs.aws.amazon.com/cli/latest/reference/dynamodb/scan.html サブコマンド:scan

Slide 9

Slide 9 text

2.コマンド実行してみた

Slide 10

Slide 10 text

赤枠部分をDynamoDBテーブルから 毎日ランダムで取得。 このテーブルにデータ追加したい。 Twitter Bot :EveryDayCoffeeTweet_β

Slide 11

Slide 11 text

builders.flashを参考に作成し、以下のカスタムを追加したもの ※詳細は割愛 ・DynamoDBのアイテム数を取得し、ランダムの値を計算 ・計算値をキーとし、該当する値を取り出しツイート ※builders.flash 「お役立ち Twitter Bot を作りながら学ぶ AWS ドリル」 https://aws.amazon.com/jp/builders-flash/202204/aws-drill-twitter-bot-4/ Twitter Bot プログラムについて

Slide 12

Slide 12 text

Excelの関数を使って作成 ※参考 https://dev.classmethod.jp/articles/googlesheets-to-dynamodb/ JSONファイル作成 =IF(ROW()=2,"[","")&"{""PutRequest"":{""Item"":{"""&B2&""":{"""&C2&""":"""&D 2&"""},"""&E2&""":{"""&F2&""":"""&G2&"""}}}}"&IF(ROW()=COUNTA(B:B),"]",",")

Slide 13

Slide 13 text

Visual Stadio Code で成形して保存 JSONファイル作成

Slide 14

Slide 14 text

コマンド実行前 アイテム数:10

Slide 15

Slide 15 text

batch-write-item データ追加実行 “UnprocessedItems”:{} と表示されれば成功 事前にJSONファイルをアップ ロードしておく。

Slide 16

Slide 16 text

データ追加確認 サブコマンドscanでテーブル名を 指定して実行。 JSONファイルに記載したデータが 追加されていればOK!! アイテム数:15

Slide 17

Slide 17 text

データ追加確認 5つアイテム追加された ことを確認 アイテム数:15

Slide 18

Slide 18 text

追加データが使われたことも確認

Slide 19

Slide 19 text

4.まとめ

Slide 20

Slide 20 text

・サブコマンドbatch-write-itemでJSONファイルを読み込ませ アイテムの一括登録が可能。 ・マネコンからのデータ追加よりは楽だけど、JSONファイルを 作るのも大変… 効率の良いJSONファイルの作り方をご存知の方いらっしゃい ましたら、ぜひご教示お願いします!🙇 ・Twitter Botのカスタマイズについては、別の機会に話します! まとめ

Slide 21

Slide 21 text

No content