http://jawsug-cli.doorkeeper.jp/events/18571 でのハンズオン資料です。
AWS CLIを利用して、DynamoDBのテーブル(ハッシュキーのみ)を作成してみます。
- create-table
- list-tables
- describe-table
前提条件
DynamoDBへの権限
- DynamoDBに対してフル権限があること。
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.7.8
テーブルの設計
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SampleData.CreateTables.html の「ユースケース 1: 製品カタログ」テーブルを参考にします。
テーブル名: ProductCatalog
プライマリキーのタイプ: ハッシュ
ハッシュ属性の名前と型: 属性名: Id (型: Number)
範囲属性の名前と型: (ハッシュキーモデルなので無し)
プロビジョニングされたスループット:
* 読み込みキャパシティーユニット: 10
* 書き込みキャパシティーユニット: 5
- 事前作業
===========
変数の確認
変数の確認
cat << ETX
AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION}
ETX
- テーブルの作成
=================
1.1. DynamoDBテーブル名の指定
コマンド(例)
DYNAMO_TABLE_NAME='ProductCatalog'
1.2. ハッシュキーの指定
コマンド(例)
DYNAMO_HASH_NAME='Id'
DYNAMO_HASH_TYPE='N'
1.3. プロビジョンドスループットの指定
コマンド(例)
DYNAMO_READ_UNIT='10'
DYNAMO_WRITE_UNIT='5'
1.4. テーブルの作成 (create-table)
コマンド
DYNAMO_ATTRIBUTE="AttributeName=${DYNAMO_HASH_NAME},AttributeType=${DYNAMO_HASH_TYPE}"
DYNAMO_KEY_SCHEMA="AttributeName=${DYNAMO_HASH_NAME},KeyType=HASH"
DYNAMO_PROV_THPUT="ReadCapacityUnits=${DYNAMO_READ_UNIT},WriteCapacityUnits=${DYNAMO_WRITE_UNIT}"
変数の確認
cat << ETX
DYNAMO_TABLE_NAME: ${DYNAMO_TABLE_NAME}
DYNAMO_ATTRIBUTE: ${DYNAMO_ATTRIBUTE}
DYNAMO_KEY_SCHEMA: ${DYNAMO_KEY_SCHEMA}
DYNAMO_PROV_THPUT: ${DYNAMO_PROV_THPUT}
ETX
コマンド
aws dynamodb create-table \
--table-name ${DYNAMO_TABLE_NAME} \
--attribute-definitions ${DYNAMO_ATTRIBUTE} \
--key-schema ${DYNAMO_KEY_SCHEMA} \
--provisioned-throughput ${DYNAMO_PROV_THPUT}
結果
{
"TableDescription": {
"AttributeDefinitions": [
{
"AttributeName": "Id",
"AttributeType": "N"
}
],
"ProvisionedThroughput": {
"NumberOfDecreasesToday": 0,
"WriteCapacityUnits": 5,
"ReadCapacityUnits": 10
},
"TableSizeBytes": 0,
"TableName": "ProductCatalog",
"TableStatus": "CREATING",
"KeySchema": [
{
"KeyType": "HASH",
"AttributeName": "Id"
}
],
"ItemCount": 0,
"CreationDateTime": 1423104342.199
}
}
- 確認 (一覧: list-tables)
=============
コマンド
aws dynamodb list-tables
結果
{
"TableNames": [
"ProductCatalog"
]
}
- 確認(詳細: describe-table)
=============
コマンド
aws dynamodb describe-table --table-name ${DYNAMO_TABLE_NAME}
結果
{
"Table": {
"AttributeDefinitions": [
{
"AttributeName": "Id",
"AttributeType": "N"
}
],
"ProvisionedThroughput": {
"NumberOfDecreasesToday": 0,
"WriteCapacityUnits": 5,
"ReadCapacityUnits": 10
},
"TableSizeBytes": 0,
"TableName": "ProductCatalog",
"TableStatus": "ACTIVE",
"KeySchema": [
{
"KeyType": "HASH",
"AttributeName": "Id"
}
],
"ItemCount": 0,
"CreationDateTime": 1423104342.199
}
}
完了
テーブルを作成したら、アイテムを登録、更新、削除してみましょう。
http://qiita.com/tcsh/items/aab2930fe38b0121852b