

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS CLI 中使用 Amazon DynamoDB
<a name="cli-services-dynamodb"></a>

AWS Command Line Interface (AWS CLI) 提供對所有 AWS 資料庫服務 (包括 Amazon DynamoDB) 的支援。您可以將 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)及[的身分驗證和存取憑證 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 可能很困難。為了讓這項操作更容易達成，AWS CLI 可以讀取 JSON 檔案。例如，請試想下列 JSON 程式碼片段，其存放在名為 `expression-attributes.json` 的檔案中。

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

您可以使用該檔案來使用 AWS CLI 發出 `query` 請求。在下列範例中，`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 API 的應用程式，無須處理 DynamoDB Web 服務中的任何表格與資料。所有 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)