

# Using Amazon DynamoDB in the AWS CLI
<a name="cli-services-dynamodb"></a>

AWS Command Line Interface (AWS CLI) は、Amazon DynamoDB を含めた AWS のすべてのデータベースサービスをサポートします。AWS CLI は、テーブルの作成などの臨時のオペレーションに使用できます。また、ユーティリティスクリプト内に DynamoDB オペレーションを埋め込むときにも使用できます。

DynamoDB での AWS CLI の使用に関する詳細については、AWS CLI コマンドリファレンスの ```[dynamodb](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html)` を参照してください。

DynamoDB 向けの AWS CLI コマンドを一覧表示するには、次のコマンドを使用します。

```
$ aws dynamodb help
```

**Topics**
+ [前提条件](#cli-services-dynamodb-prereqs)
+ [DynamoDB テーブルの作成と使用](#cli-services-dynamodb-using)
+ [DynamoDB Local を使用する](#cli-services-dynamodb-local)
+ [リソース](#cli-services-dynamodb-resources)

## 前提条件
<a name="cli-services-dynamodb-prereqs"></a>

`dynamodb` コマンドを実行するには、次のことが必要です。
+ AWS CLI をインストールして設定します。詳細については、[AWS CLI の最新バージョンのインストールまたは更新](getting-started-install.md) および [Authentication and access credentials for the AWS CLI](cli-chap-authentication.md) を参照してください。

## DynamoDB テーブルの作成と使用
<a name="cli-services-dynamodb-using"></a>

コマンドラインの形式は、DynamoDB コマンド名の後に、そのコマンドのパラメータが続きます。AWS CLI は、パラメータ値の CLI [短縮構文](cli-usage-shorthand.md)と、完全な JSON をサポートしています。

次の例では、`MusicCollection`という名前のテーブルを作成します。

```
$ aws dynamodb create-table \
    --table-name MusicCollection \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
```

次の例に示されているようなコマンドと同様のコマンドで、新しい行をテーブルに追加できます。この例では、短縮構文と JSON を組み合わせて使用しています。

```
$ aws dynamodb put-item \
    --table-name MusicCollection \
    --item '{
        "Artist": {"S": "No One You Know"},
        "SongTitle": {"S": "Call Me Today"} ,
        "AlbumTitle": {"S": "Somewhat Famous"} 
      }' \
    --return-consumed-capacity TOTAL
{
    "ConsumedCapacity": {
        "CapacityUnits": 1.0,
        "TableName": "MusicCollection"
    }
}
```

```
$ aws dynamodb put-item \
    --table-name MusicCollection \
    --item '{ 
        "Artist": {"S": "Acme Band"}, 
        "SongTitle": {"S": "Happy Day"} , 
        "AlbumTitle": {"S": "Songs About Life"} 
      }' \
    --return-consumed-capacity TOTAL
{
    "ConsumedCapacity": {
        "CapacityUnits": 1.0,
        "TableName": "MusicCollection"
    }
}
```

有効な JSON を 1 行のコマンドで作成するのは難しい場合があります。これを簡単にするために、AWS CLI は JSON ファイルを読み取ることができます。例えば、`expression-attributes.json` という名前のファイルに格納されている次の JSON スニペットがあるとします。

```
{
  ":v1": {"S": "No One You Know"},
  ":v2": {"S": "Call Me Today"}
}
```

そのファイルを使用して、`query` を使用する AWS CLI リクエストを発行することができます。次の例では、`expression-attributes.json` ファイルの内容が `--expression-attribute-values` パラメータの値に使用されます。

```
$ aws dynamodb query --table-name MusicCollection \
    --key-condition-expression "Artist = :v1 AND SongTitle = :v2" \
    --expression-attribute-values file://expression-attributes.json
{
    "Count": 1,
    "Items": [
        {
            "AlbumTitle": {
                "S": "Somewhat Famous"
            },
            "SongTitle": {
                "S": "Call Me Today"
            },
            "Artist": {
                "S": "No One You Know"
            }
        }
    ],
    "ScannedCount": 1,
    "ConsumedCapacity": null
}
```

## DynamoDB Local を使用する
<a name="cli-services-dynamodb-local"></a>

DynamoDB に加えて、DynamoDB Local でも AWS CLI を使用できます。DynamoDB Local は、小規模のクライアント側データベースとサーバーで、DynamoDB サービスに似せて作られています。DynamoDB Local では、DynamoDB ウェブサービスでテーブルまたはデータを操作しなくても、DynamoDB API を使用するアプリケーションを作成することができます。すべての API アクションがローカルデータベースに転送されます。これにより、プロビジョニングされたスループット、データストレージ、およびデータ転送料金を節約できます。

DynamoDB Local、および AWS CLI での使用方法の詳細については、[Amazon DynamoDB デベロッパーガイド](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/)の以下のセクションを参照してください。
+ [DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html)
+ [DynamoDB Local での AWS CLI の使用](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.CLI.html#UsingWithDDBLocal)

## リソース
<a name="cli-services-dynamodb-resources"></a>

**AWS CLI リファレンス:**
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/create-table.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/create-table.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html)

**サービスリファレンス:**
+ Amazon DynamoDB デベロッパーガイドの [DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html)
+ Amazon DynamoDB デベロッパーガイドの「[DynamoDB Local での AWS CLI の使用](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.CLI.html#UsingWithDDBLocal)」