App Engineerの開発ノート

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

AWS入門~CLIで使用してDynamoDBを操作する

f:id:Simoroid:20210916230834p:plain
CLIコマンドラインインターフェース)を使用してDynamoDBのテーブルを作成・削除・更新や項目(RDBでいうレコード)
の登録方法のTipsです。CLI自体の導入は下記から行います。
ikoda.shop

また、今回の手順はlocalstackを使用したローカル環境に向けてのものになります。
localstackの導入は下記から行います。
【AWS入門】Javaで始めてのLambdaアプリ開発 - App Engineerの開発ノート

■プロファイルを作成

事前の準備でプロファイルを作ります。
localstackで使用する場合においては"Default output format"以外は任意の値で大丈夫です。
※default以外で認証情報を使いたい場合、profileオプションを使用します

aws configure

AWS Access Key ID [None]: xxx
AWS Secret Access Key [None]: xxx
Default region name [None]: xxx
Default output format [None]: json
■テーブルを作成

※Patition Key、Sort Key以外の項目は作成時には指定できません、非キー属性の項目は項目登録のタイミングで行います。
aws dynamodb create-table --table テーブル名 --attribute-definitions AttributeName=属性名,AttributeType=属性の型 --key-schema AttributeName=Patition Key or
Sort Keyに指定する属性名,KeyType=HASH or Range --provisioned-throughput ReadCapacityUnits=任意の数値,WriteCapacityUnits=任意の数値 --endpoint-url=http://localhost:4566

下記は例です。※ポート番号に注意

aws dynamodb create-table --table-name test --attribute-definitions AttributeName=testId,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url=http://localhost:4566
■テーブルに項目を登録

aws dynamodb put-item --table-name テーブル名 --endpoint-url http://localhost:4566 --item 項目情報

下記は例です。

aws dynamodb put-item --table-name "test" --endpoint-url http://localhost:4566 --item '{\"testId\" : {\"S\" : \"test\"},\"name\" : {\"S\" : \"taro\"}}'
■テーブル情報を確認

aws dynamodb scan --table-name テーブル名 --endpoint-url http://localhost:4566

下記は例です。

aws dynamodb scan --table-name "test" --endpoint-url http://localhost:4566

※プロファイルをローカル用などで別途用意してる場合はオプションをつける

aws dynamodb scan --table-name "test" --endpoint-url http://localhost:4566 --profile=xxx
■テーブルにある項目を削除

aws dynamodb delete-item --table-name テーブル名 --endpoint-url http://localhost:4566 --key キー属性

下記は例です。

aws dynamodb delete-item --table-name "test" --endpoint-url http://localhost:4566 --key '{\"testId\" : {\"S\" : \"test\"}}'
■テーブルの一覧を確認

aws dynamodb list-tables --endpoint-url=http://localhost:4566

下記は例です。

aws dynamodb list-tables --endpoint-url=http://localhost:4566

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