Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DynamoDBテーブルにAWSCLIでアイテムを一括登録する方法

 DynamoDBテーブルにAWSCLIでアイテムを一括登録する方法

2022/6/9 JAWS-UG CLI専門支部 #266R (入門者向け) EC2入門 LT資料

amarelo_n24

June 09, 2022
Tweet

More Decks by amarelo_n24

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. AWS CLIで一括登録できる!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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),"]",",")

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. 4.まとめ

    View Slide

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

    View Slide

  21. View Slide