-- ステップ 1: テーブルを作成する
aws dynamodb create-table \
--table-name tab1 \
--attribute-definitions \
AttributeName=col1,AttributeType=S \
AttributeName=col2,AttributeType=S \
--key-schema \
AttributeName=col1,KeyType=HASH \
AttributeName=col2,KeyType=RANGE \
--billing-mode=PAY_PER_REQUEST
aws dynamodb describe-table --table-name tab1
aws dynamodb list-tables
-- ステップ 2: テーブルにデータを書き込む
aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val11"}, "col2": {"S": "val12"}, "col3": {"S": "val13"}, "col4": {"N": "1"}}'
aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val21"}, "col2": {"S": "val22"}, "col3": {"S": "val23"}, "col4": {"N": "2"} }'
-- ステップ 3: テーブルからデータを読み込む
aws dynamodb get-item \
--consistent-read \
--table-name tab1 \
--key '{ "col1": {"S": "val21"}, "col2": {"S": "val22"}}'
-- ステップ 4: テーブルのデータを更新する
aws dynamodb update-item \
--table-name tab1 \
--key '{ "col1": {"S": "val21"}, "col2": {"S": "val22"}}' \
--update-expression "SET col3 = :newval" \
--expression-attribute-values '{":newval":{"S":"newval23"}}' \
--return-values ALL_NEW
-- ステップ 5: テーブルのデータをクエリする
aws dynamodb query \
--table-name tab1 \
--key-condition-expression "col1 = :name" \
--expression-attribute-values '{":name":{"S":"val21"}}'
-- ステップ 6: グローバルセカンダリインデックスを作成する
aws dynamodb update-table \
--table-name tab1 \
--attribute-definitions AttributeName=col3,AttributeType=S \
--global-secondary-index-updates \
"[{\"Create\":{\"IndexName\": \"ind11\",\"KeySchema\":[{\"AttributeName\":\"col3\",\"KeyType\":\"HASH\"}], \
\"Projection\":{\"ProjectionType\":\"ALL\"}}}]"
aws dynamodb describe-table --table-name tab1
aws dynamodb describe-table --table-name tab1 | grep IndexStatus
-- ステップ 7: グローバルセカンダリインデックスをクエリする
aws dynamodb query \
--table-name tab1 \
--index-name ind11 \
--key-condition-expression "col3 = :name" \
--expression-attribute-values '{":name":{"S":"val13"}}'
-- ステップ 8: テーブルのデータを削除する
aws dynamodb delete-item \
--table-name tab1 \
--key '{ "col1": {"S": "val21"}, "col2": {"S": "val22"}}'
-- ステップ 9: テーブルのデータをスキャンする
aws dynamodb scan --table-name tab1
-- ステップ 10: (オプション) リソースをクリーンアップする
aws dynamodb delete-table --table-name tab1
aws dynamodb list-tables