AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の Amazon DynamoDB チュートリアル AWS Cloud9
このチュートリアルでは、Amazon DynamoDB と連携する AWS Cloud9 開発環境を設定できます。
DynamoDB はフルマネージド型の NoSQL データベースサービスです。DynamoDB を使用して、任意の量のデータを保存および取得できるデータベーステーブルを作成し、任意のレベルのリクエストトラフィックを処理できます。DynamoDB によって自動的に、そのテーブルのデータとトラフィックが多数のサーバーに分散されます。サーバーの数は、指定のリクエスト容量と保存されているデータを処理するのに十分であるように選択されます。このような分散処理の間も、パフォーマンスは一定で、高速です。詳細については、 AWS ウェブサイトの「Amazon DynamoDB
このサンプルを作成すると、 AWS アカウントに料金が発生する可能性があります。これらには、Amazon EC2や DynamoDB などのサービスに対して発生する可能性のある料金が含まれます。詳細については、「Amazon EC2料金
その他の AWS データベースサービスの詳細については、 AWS ウェブサイトのAmazon Relational Database Service (RDS)
前提条件
このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。
-
既存の AWS Cloud9 EC2開発環境が必要です。このサンプルは、EC2Amazon EC2 Linux または Ubuntu サーバー。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「での環境の作成 AWS Cloud9」を参照してください。
-
既存の環境の は既に開いています AWS Cloud9 IDE。環境を開くと、 はウェブブラウザでその環境IDEの AWS Cloud9 を開きます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。
ステップ 1: AWS CLI、 AWS CloudShell、またはその両方を環境にインストールして設定する
このステップでは、 を使用して AWS Cloud9 IDE AWS CLI、、またはその両方を環境にインストールして設定し AWS CloudShell、コマンドを実行して DynamoDB とやり取りできるようにします。次に、 AWS CLI を使用してベーシックな DynamoDB コマンドを実行し、インストールと設定をテストします。
-
AWS CLI または AWS CloudShell と の認証情報管理を設定して AWS CloudShell、 AWS CLI、、またはその両方を環境にインストールするには、 AWS CLI および AWS CloudShell サンプル のステップ 1 と 2 に従って、このトピックに戻ります。環境内に AWS CLI、、 AWS CloudShellまたはその両方を既にインストールして設定している場合は、再度インストールする必要はありません。
-
環境のターミナルセッションから DynamoDB
list-tables
コマンドを実行して、既存の DynamoDB テーブルがある場合は一覧表示することで、、 AWS CLI aws-shell、またはその両方のインストールと設定をテストします。新しいターミナルセッションを開始するには、メニューバーで、[Windows (ウィンドウ)]、[New Terminal (新しいターミナル)] の順に選択します。aws dynamodb list-tables # For the AWS CLI. dynamodb list-tables # For the aws-shell.
注記
このサンプルでは、aws-shell を使用している場合に
aws
で始まる各コマンドのaws
を省略します。aws-shell を開始するには、aws-shell
コマンドを実行します。aws-shell の使用を停止するには、.exit
コマンドまたは.quit
コマンドを実行します。このコマンドが正常に実行されると、既存の DynamoDB テーブル (ある場合) のリストが
TableNames
配列として出力されます。まだ DynamoDB テーブルがない場合、TableNames
配列は空になります。{ "TableNames": [] }
DynamoDB テーブルがある場合は、
TableNames
配列にテーブル名のリストが表示されます。
ステップ 2: テーブルを作成する
このステップでは、DynamoDB でテーブルを作成してテーブルの名前、レイアウト、シンプルプライマリキー、データスループット設定を指定します。
Weather
というこのサンプルテーブルには、アメリカのいくつかの都市の天気予報に関する情報が含まれています。このテーブルには、以下のタイプの情報 (DynamoDB では個々の情報は属性と呼ばれます) が保持されます。
-
必須の一意の都市 ID (
CityID
) -
必須の予報日 (
Date
) -
都市名 (
City
) -
州名 (
State
) -
予測天気 (
Conditions
) -
予測温度 (
Temperatures
)-
予測最高気温、華氏 (
HighF
) -
予測最低気温、華氏 (
LowF
)
-
テーブルを作成するには、 のターミナルセッションで AWS Cloud9 IDEDynamoDB create-table
コマンドを実行します。
aws dynamodb create-table \ --table-name Weather \ --attribute-definitions \ AttributeName=CityID,AttributeType=N AttributeName=Date,AttributeType=S \ --key-schema \ AttributeName=CityID,KeyType=HASH AttributeName=Date,KeyType=RANGE \ --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
このコマンドで:
-
--table-name
はテーブル名を表します (このサンプルではWeather
)。テーブル名は、アカウントの各 AWS リージョン内で AWS 一意である必要があります。 -
--attribute-definitions
はテーブル項目を一意に識別するために使用する属性を表します。このテーブルの各項目は、数値ID
属性と ISO-8601 形式の文字列として表されるDate
属性の組み合わせによって一意に識別されます。 -
--key-schema
はテーブルのキースキーマを表します。このテーブルにはCityID
とDate
の複合プライマリキーがあります。つまり、テーブルの各項目はCityID
属性値とDate
属性値を持つ必要がありますが、テーブル内でCityID
属性値とDate
属性値が両方とも同じ 2 つの項目が存在することはできません。 -
--provisioned-throughput
はテーブルの読み取り/書き込み容量を表します。DynamoDB では、サイズが 4 KB までの項目について 1 秒あたり最大 5 つの強力な整合性のある読み込み、またはサイズが 4 KB までの項目について 1 秒あたり最大 5 つの結果整合性のある読み込みが許可されます。また、DynamoDB ではサイズが 1 KB までの項目について 1 秒あたり最大 5 回の書き込みが許可されます。注記
プロビジョニングされたスループットを高めると、 AWS アカウントに追加料金が発生する可能性があります。
この件および他の DynamoDB のコマンドの詳細については、AWS CLI コマンドリファレンスの「dynamodb」を参照してください。
このコマンドが成功した場合、作成する新しいテーブルに関する概要情報が表示されます。テーブルが正常に作成されたことを確認するには、テーブルの名前 (--table-name
) を指定して DynamoDB describe-table
コマンドを実行します。
aws dynamodb describe-table --table-name Weather
テーブルが正常に作成されると、TableStatus
の値が CREATING
から ACTIVE
に変わります。テーブルが正常に作成されてからこのステップの先に進んでください。
ステップ 3: テーブルに 1 つの項目を追加する
このステップでは、作成したテーブルに項目を追加します。
-
weather-item.json
という名前のファイルを作成し、次の内容を記述します。新規ファイルを作成するには、メニューバーで [File (ファイル)]、[New File (新規ファイル)] の順に選択します。ファイルを保存するには、[File (ファイル)]、[Save (保存)]の順に選択します。{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "46" } } } }
このコードでは、
N
は数値である属性値です。S
は文字列の属性値です。M
はマップ属性であり、一連の属性と値のペアです。項目を操作する場合は常に属性のデータ型を指定する必要があります。その他の使用可能な属性のデータ型については、データ型のAmazon DynamoDB デベロッパーガイドのデータ型を参照してください。 -
DynamoDB
put-item
コマンドを実行し、テーブルの名前 (--table-name
) と JSON形式の項目へのパス () を指定します--item
。aws dynamodb put-item \ --table-name Weather \ --item file://weather-item.json
コマンドが成功すると、エラーなしで実行され、確認メッセージは表示されません。
-
テーブルの現在のコンテンツを確認するには、テーブルの名前 (
--table-name
) を指定して DynamoDBscan
コマンドを実行します。aws dynamodb scan --table-name Weather
コマンドが成功した場合は、テーブルおよび追加した項目に関する概要情報が表示されます。
ステップ 4: テーブルに複数の項目を追加する
このステップでは、Weather
テーブルに複数の項目を追加します。
-
more-weather-items.json
という名前のファイルを作成し、次の内容を記述します。{ "Weather": [ { "PutRequest": { "Item": { "CityID": { "N": "1" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "52" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "1" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "49" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Thunderstorms" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "51" }, "LowF": { "N": "41" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Rain Showers" }, "Temperatures": { "M": { "HighF": { "N": "49" }, "LowF": { "N": "39" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "40" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Partly Sunny" }, "Temperatures": { "M": { "HighF": { "N": "54" }, "LowF": { "N": "37" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Mostly Sunny" }, "Temperatures": { "M": { "HighF": { "N": "53" }, "LowF": { "N": "37" } } } } } } ] }
このコードでは、前のステップで定義された単一の項目と同様に、8 つの
Item
オブジェクトがテーブルに追加する 8 つの項目を定義します。ただし、次のステップで DynamoDBbatch-write-item
コマンドを実行するときは、 を含むオブジェクト内の各Item
オブジェクトを含む JSON形式のPutRequest
オブジェクトを指定する必要があります。次に、これらのPutRequest
オブジェクトを、テーブルと同じ名前の親配列に含める必要があります。 -
DynamoDB
batch-write-item
コマンドを実行し、追加する JSON形式の項目 () へのパスを指定します--request-items
。aws dynamodb batch-write-item \ --request-items file://more-weather-items.json
コマンドが成功すると、次のメッセージが表示され、項目が正常に追加されたことを確認できます。
{ "UnprocessedItems": {} }
-
テーブルの現在のコンテンツを確認するには、DynamoDB
scan
コマンドをもう一度実行します。aws dynamodb scan --table-name Weather
コマンドが成功した場合は、9 件の項目が表示されます。
ステップ 5: グローバルセカンダリインデックスを作成する
DynamoDB scan
コマンドを実行して項目に関する情報を取得するには、特にテーブルのサイズが大きくなった場合や、取得する情報のタイプが複雑な場合は、時間がかかる場合があります。1 つ以上のセカンダリインデックスを作成して、処理速度を上げ情報を簡単に取得できるようにします。このステップでは、これを行うために DynamoDB がサポートしている 2 種類のセカンダリインデックスについて学習します。これらは、ローカルセカンダリインデックスおよびグローバルセカンダリインデックスと呼ばれます。ここではグローバルセカンダリインデックスを作成します。
これらのセカンダリインデックスの種類を理解するには、最初にテーブルの項目を一意に識別するプライマリキーの詳細について理解する必要があります。DynamoDB では、シンプルプライマリキーまたは複合プライマリキーがサポートされています。シンプルプライマリキーには単一の属性があり、その属性値はテーブルの項目ごとに一意である必要があります。この属性は、パーティションキー (またはハッシュ属性) とも呼ばれ、DynamoDB はこれを使用して項目をパーティション化し、アクセスを高速化します。また、テーブルで 2 つの属性を組み合わせた複合プライマリキーを持つこともできます。最初の属性はパーティションキーであり、2 番目の属性はソートキー (範囲属性ともいいます) です。複合プライマリキーがあるテーブルの場合、2 つの項目が同じパーティションキー値を持つことはできますが、ソートキー値も同じにはできません。Weather
テーブルには複合プライマリキーがあります。
ローカルセカンダリインデックスは、テーブル自体と同じパーティションキーを持ちますが、このインデックスタイプでは異なるソートキーを持つことができます。グローバルセカンダリインデックスは、テーブル自体とはどちらも異なるパーティションキーとソートキーを持つことができます。
たとえば、Weather
項目にアクセスするプライマリキーに CityID
を既に使用しているとします。Weather
項目に State
を使用してアクセスするには、パーティションキー CityID
(テーブル自体と同じである必要があります) とソートキー State
を持つローカルセカンダリインデックスを作成できます。Weather
項目に City
を使用してアクセスするには、パーティションキー City
とソートキー Date
を持つグローバルセカンダリインデックスを作成できます。
ローカルセカンダリインデックスは、テーブルを作成するときにのみ作成できます。Weather
テーブルが既に存在するため、そこにローカルセカンダリインデックスを追加することはできません。ただし、グローバルセカンダリインデックスを追加することはできます。1 つ追加してみましょう。
注記
セカンダリインデックスを作成すると、 AWS アカウントに追加料金が発生する可能性があります。
-
weather-global-index.json
という名前のファイルを作成し、次の内容を記述します。[ { "Create": { "IndexName": "weather-global-index", "KeySchema": [ { "AttributeName": "City", "KeyType": "HASH" }, { "AttributeName": "Date", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "State", "Conditions", "Temperatures" ] }, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } } ]
このコードでは:
-
グローバルセカンダリインデックスの名前は
weather-global-index
です。 -
City
属性はパーティションキー (ハッシュ属性)、Date
属性はソートキー (範囲属性) です。 -
Projection
は、このインデックスを使用したテーブル検索に一致する各項目について、デフォルトで (ハッシュ属性と範囲属性に加えて) 取得する属性を定義します。このサンプルでは、State
、Conditions
、HighF
(Temperatures
の一部)、およびLowF
(Temperatures
のい一部) 属性 (およびCity
属性とDate
属性) は、一致する項目ごとに取得されます。 -
テーブルと同様に、グローバルセカンダリインデックスではプロビジョニングされたスループット設定を定義する必要があります。
-
IndexName
、KeySchema
、Projection
、およびProvisionedThroughput
設定がCreate
オブジェクトに含まれている必要があります。このオブジェクトは、次のステップで DynamoDBupdate-table
コマンドを実行して作成するグローバルセカンダリインデックスを定義します。
-
-
DynamoDB
update-table
コマンドを実行します。aws dynamodb update-table \ --table-name Weather \ --attribute-definitions \ AttributeName=City,AttributeType=S AttributeName=Date,AttributeType=S \ --global-secondary-index-updates file://weather-global-index.json
このコマンドで:
-
--table-name
は更新するテーブルの名前です。 -
--attribute-definitions
はインデックスに含める属性です。パーティションキーは常にリストの最初に表示され、ソートキーは常にリストの 2 番目に表示されます。 -
--global-secondary-index-updates
はグローバルセカンダリインデックスを定義するファイルへのパスです。
このコマンドが成功した場合、作成する新しいグローバルセカンダリインデックスに関する概要情報が表示されます。グローバルセカンダリインデックスが正常に作成されたことを確認するには、テーブルの名前 (
--table-name
) を指定して DynamoDBdescribe-table
コマンドを実行します。aws dynamodb describe-table --table-name Weather
グローバルセカンダリインデックスが正常に作成された場合、
TableStatus
の値がUPDATING
からACTIVE
に変わり、IndexStatus
の値がCREATING
からACTIVE
に変わります。グローバルセカンダリインデックスが正常に作成されてからこのステップの先に進んでください。これには数分間かかる場合があります。 -
ステップ 6: テーブルから項目を取得する
テーブルから項目を取得する方法は複数あります。このステップでは、テーブルのプライマリキー、テーブルのその他の属性、およびグローバルセカンダリインデックスをそれぞれ使用して項目を取得します。
項目のプライマリキーの値に基づいてテーブルから単一の項目を取得するには
項目のプライマリキーバリューがわかっている場合は、DynamoDB コマンド get-item
、 scan
、または query
を実行して一致する項目を取得できます。各コマンドの主な相違点は次のとおりです。
-
get-item
は、指定されたプライマリキーを持つ項目の属性のセットを返します。 -
scan
は、テーブルまたはセカンダリインデックスの各項目にアクセスして、1 つ以上の項目または項目属性を返します。 -
query
はプライマリキー値に基づいて項目を探します。複合プライマリキー (パーティションキーとソートキー) のあるテーブルまたはセカンダリインデックスをクエリできます。
このサンプルで、これらのコマンドをそれぞれ使用して、CityID
属性の値が 1
、Date
属性の値が 2017-04-12
の項目を取得する方法を説明します。
-
DynamoDB
get-item
コマンドを実行するには、テーブルの名前 (--table-name
)、プライマリキーバリュー (--key
)、および表示する項目の属性値 (--projection-expression
) を指定します。Date
は DynamoDBで予約されたキーワードであるため、Date
属性値のエイリアス (--expression-attribute-names
) も指定する必要があります (State
も予約されたキーワードであり、このためのエイリアスは後のステップで指定します)。aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }' \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }'
このコマンドや他のコマンドで、項目の属性をすべて表示するには、
--projection-expression
を含めません。このサンプルでは、--projection-expression
を含めていないため、--expression-attribute-names
を含める必要もありません。aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }'
-
DynamoDB
scan
コマンドを実行するには、以下を指定します。-
テーブルの名前 (
--table-name
)。 -
実行する検索 (
--filter-expression
)。 -
使用する検索基準 (
--expression-attribute-values
)。 -
一致した項目で表示する属性の種類 (
--select
)。 -
表示する項目の属性値 (
--projection-expression
)。 -
属性に DynamoDB の予約済みキーワードが使用されている場合、その属性のエイリアス (
--expression-attribute-names
)。
aws dynamodb scan \ --table-name Weather \ --filter-expression "(CityID = :cityID) and (#D = :date)" \ --expression-attribute-values \ '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }'
-
-
DynamoDB
query
コマンドを実行するには、以下を指定します。-
テーブルの名前 (
--table-name
)。 -
実行する検索 (
--key-condition-expression
)。 -
検索で使用する属性値 (
--expression-attribute-values
)。 -
一致した項目で表示する属性の種類 (
--select
)。 -
表示する項目の属性値 (
--projection-expression
)。 -
属性に DynamoDB の予約済みキーワードが使用されている場合、その属性のエイリアス (
--expression-attribute-names
)。
aws dynamodb query \ --table-name Weather \ --key-condition-expression "(CityID = :cityID) and (#D = :date)" \ --expression-attribute-values \ '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }'
結果を取得するためにスキャンする必要がある項目数が、
scan
コマンドでは 9 項目すべてであるのに対してquery
コマンドでは 1 項目のみであることに注目してください。 -
項目のプライマリキーの値に基づいてテーブルから複数の項目を取得するには
項目のプライマリキーバリューがわかっている場合は、DynamoDB batch-get-item
コマンドを実行して一致する項目を取得できます。このサンプルで、CityID
属性の値が 3
、Date
属性の値が 2017-04-13
または 2017-04-14
の項目を取得する方法を説明します。
取得する項目を記述するファイルへのパス (--request-items
) を指定して、DynamoDB batch-get-item
コマンドを実行します。
aws dynamodb batch-get-item --request-items file://batch-get-item.json
このサンプルでは、batch-get-item.json
ファイルのコードは、Weather
テーブルで、CityID
が 3
であり Date
が 2017-04-13
または 2017-04-14
である項目を検索するように指定します。検出された各項目について、City
、State
、Date
、および HighF
(Temperatures
の一部) の属性値が表示されます (存在する場合)。
{ "Weather" : { "Keys": [ { "CityID": { "N": "3" }, "Date": { "S": "2017-04-13" } }, { "CityID": { "N": "3" }, "Date": { "S": "2017-04-14" } } ], "ProjectionExpression": "City, #S, #D, Temperatures.HighF", "ExpressionAttributeNames": { "#S": "State", "#D": "Date" } } }
一致するすべての項目をテーブルから取得するには
テーブルの属性値について一部でもわかっていることがあれば、DynamoDB scan
コマンドを実行して一致する項目を取得できます。このサンプルで、Conditions
属性の値に Sunny
が含まれ、HighF
属性の値 (Temperatures
の一部) が 53
より大きい日を取得する方法を説明します。
DynamoDB scan
コマンドを実行し、以下を指定します。
-
テーブルの名前 (
--table-name
)。 -
実行する検索 (
--filter-expression
)。 -
使用する検索基準 (
--expression-attribute-values
)。 -
一致した項目で表示する属性の種類 (
--select
)。 -
表示する項目の属性値 (
--projection-expression
)。 -
属性に DynamoDB の予約済みキーワードが使用されている場合、その属性のエイリアス (
--expression-attribute-names
)。
aws dynamodb scan \ --table-name Weather \ --filter-expression \ "(contains (Conditions, :sun)) and (Temperatures.HighF > :h)" \ --expression-attribute-values \ '{ ":sun": { "S" : "Sunny" }, ":h": { "N" : "53" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \ --expression-attribute-names '{ "#S": "State", "#D": "Date" }'
一致するすべての項目をグローバルセカンダリインデックスから取得するには
グローバルセカンダリインデックスを使用して検索するには、DynamoDBquery
コマンドを使用します。このサンプルで、weather-global-index
セカンダリインデックスを使用して、日付が Portland
および 2017-04-13
の、2017-04-14
という名前の都市の予測天気を取得する方法を説明します。
DynamoDB query
コマンドを実行し、以下を指定します。
-
テーブルの名前 (
--table-name
)。 -
グローバルセカンダリインデックスの名前 (
--index-name
)。 -
実行する検索 (
--key-condition-expression
)。 -
検索で使用する属性値 (
--expression-attribute-values
)。 -
一致した項目で表示する属性の種類 (
--select
)。 -
属性に DynamoDB の予約済みキーワードが使用されている場合、その属性のエイリアス (
--expression-attribute-names
)。
aws dynamodb query \ --table-name Weather \ --index-name weather-global-index \ --key-condition-expression "(City = :city) and (#D between :date1 and :date2)" \ --expression-attribute-values \ '{ ":city": { "S" : "Portland" }, ":date1": { "S": "2017-04-13" }, ":date2": { "S": "2017-04-14" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \ --expression-attribute-names '{ "#S": "State", "#D": "Date" }'
ステップ 7: クリーンアップする
このサンプルの使用が完了した後に AWS アカウントへの継続的な料金が発生するのを防ぐには、テーブルを削除する必要があります。テーブルを削除すると、グローバルセカンダリインデックスも削除されます。環境も削除する必要があります。
テーブルを削除するには、テーブルの名前 () を指定して DynamoDBdelete-table
--table-name
コマンドを実行します。
aws dynamodb delete-table --table-name Weather
コマンドが成功した場合は、テーブルに関する情報が表示され、そこで TableStatus
値が DELETING
になっています。
テーブルが正常に削除されたことを確認するには、 DynamoDB describe-table
コマンドを実行して、テーブルの名前 (--table-name
) を指定してます。
aws dynamodb describe-table --table-name Weather
テーブルが正常に削除された場合は、Requested
resource not found
というフレーズを含むメッセージが表示されます。
環境を削除するには、「環境の削除」を参照してください。