

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

# 在 DynamoDB 中使用資料表和資料
<a name="WorkingWithTables"></a>

本節說明如何使用 AWS Command Line Interface (AWS CLI) 和 AWS SDKs 在 Amazon DynamoDB 中建立、更新和刪除資料表。

**注意**  
您也可以使用 AWS 管理主控台來執行這些相同的任務。如需詳細資訊，請參閱[使用主控台](AccessingDynamoDB.md#ConsoleDynamoDB)。

本節也會使用 DynamoDB Auto Scaling 或手動設定佈建輸送量來提供輸送容量的詳細資訊。

**Topics**
+ [DynamoDB 資料表上的基本操作](WorkingWithTables.Basics.md)
+ [選擇 DynamoDB 資料表類別時的注意事項](WorkingWithTables.tableclasses.md)
+ [將標籤新增至 DynamoDB 中的資源](Tagging.md)

# DynamoDB 資料表上的基本操作
<a name="WorkingWithTables.Basics"></a>

與其他資料庫系統類似，Amazon DynamoDB 會將資料存放在資料表中。您可使用幾個基本操作來管理您的資料表。

**Topics**
+ [建立資料表](#WorkingWithTables.Basics.CreateTable)
+ [說明資料表](#WorkingWithTables.Basics.DescribeTable)
+ [更新資料表](#WorkingWithTables.Basics.UpdateTable)
+ [刪除資料表](#WorkingWithTables.Basics.DeleteTable)
+ [使用刪除保護](#WorkingWithTables.Basics.DeletionProtection)
+ [列出資料表名稱](#WorkingWithTables.Basics.ListTables)
+ [說明佈建輸送量配額](#WorkingWithTables.Basics.DescribeLimits)

## 建立資料表
<a name="WorkingWithTables.Basics.CreateTable"></a>

使用 `CreateTable` 操作在 Amazon DynamoDB 中建立資料表。若要建立資料表，您必須提供以下資訊：
+ **資料表名稱** 名稱必須符合 DynamoDB 命名規則，且目前 AWS 帳戶和區域必須是唯一的。例如，您可以在美國東部 (維吉尼亞北部) 建立 `People` 資料表，在歐洲 (愛爾蘭) 建立另一個 `People` 資料表。不過，這兩個資料表彼此必須完全不同。如需詳細資訊，請參閱 [Amazon DynamoDB 中支援的資料類型和命名規則](HowItWorks.NamingRulesDataTypes.md)。
+ **主索引鍵。**主索引鍵可以包含一個屬性 (分割區索引鍵) 或兩個屬性 (分割區索引鍵和排序索引鍵)。您需要提供屬性名稱、資料類型和每個屬性的角色：`HASH` (適用於分割區索引鍵) 和 `RANGE` (適用於排序索引鍵)。如需詳細資訊，請參閱 [主索引鍵](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey)。
+ **輸送量設定 (針對佈建的資料表)。**如果使用佈建的模式，您必須指定資料表的讀取和寫入初始輸送量設定。您稍後可以修改這些設定，或讓 DynamoDB Auto Scaling 功能來管理設定。如需詳細資訊，請參閱[DynamoDB 佈建容量模式](provisioned-capacity-mode.md)及[使用 DynamoDB Auto Scaling 功能自動管理輸送容量](AutoScaling.md)。

### 範例 1：建立隨需資料表
<a name="create-payperrequest-example"></a>

使用隨需模式來建立相同的資料表 `Music`。

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode=PAY_PER_REQUEST
```

`CreateTable` 操作會傳回資料表的中繼資料，如下所示。

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 0,
            "ReadCapacityUnits": 0
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "BillingModeSummary": {
            "BillingMode": "PAY_PER_REQUEST"
        },
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397468.348
    }
}
```

**重要**  
 呼叫隨需資料表上的 `DescribeTable` 時，讀取容量單位與寫入容量單位設為 0。

### 範例 2：建立佈建資料表
<a name="create-provisioned-example"></a>

下列 AWS CLI 範例示範如何建立資料表 (`Music`)。主索引鍵包含 `Artist` (分割區索引鍵) 和 `SongTitle` (排序索引鍵)，而且它們每一個的資料類型都是 `String`。此資料表的輸送量上限是 10 個讀取容量單位和 5 個寫入容量單位。

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

`CreateTable` 操作會傳回資料表的中繼資料，如下所示。

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

`TableStatus` 元素指出資料表的目前狀態 (`CREATING`)。根據您指定的 `ReadCapacityUnits` 和 `WriteCapacityUnits` 值，可能需要一些時間才能建立資料表。這些項目的較大值需要 DynamoDB 為資料表配置更多資源。

### 範例 3：使用 DynamoDB 標準的不常存取資料表類別建立資料表
<a name="create-infrequent-access-example"></a>

若要建立相同的 `Music` 資料表，使用 DynamoDB 標準：不常存取資料表類別。

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --table-class STANDARD_INFREQUENT_ACCESS
```

`CreateTable` 操作會傳回資料表的中繼資料，如下所示。

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableClassSummary": {
            "LastUpdateDateTime": 1542397215.37,
            "TableClass": "STANDARD_INFREQUENT_ACCESS"
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

## 說明資料表
<a name="WorkingWithTables.Basics.DescribeTable"></a>

若要檢視資料表的詳細資訊，請使用 `DescribeTable` 操作。您必須提供資料表名稱。`DescribeTable` 中輸出的格式與 `CreateTable` 相同。它包含建立資料表的時間戳記、其索引鍵結構描述、其佈建的輸送量設定、其預估大小以及任何現有的次要索引。

**重要**  
 呼叫隨需資料表上的 `DescribeTable` 時，讀取容量單位與寫入容量單位設為 0。

**Example**  

```
aws dynamodb describe-table --table-name Music
```

`TableStatus` 從 `CREATING` 變更為 `ACTIVE` 之後，就表示資料表準備就緒可供使用。

**注意**  
如果您在 `CreateTable` 請求之後立即發出 `DescribeTable` 請求，則 DynamoDB 可能會傳回錯誤 (`ResourceNotFoundException`)。原因是 `DescribeTable` 使用最終一致查詢，而且您資料表的中繼資料目前可能無法使用。請等待幾秒，然後再次重試 `DescribeTable` 請求。  
為計算費用，您的 DynamoDB 儲存費用包含 100 個位元組的個別項目成本。(如需詳細資訊，請前往 [DynamoDB 定價](https://aws.amazon.com/dynamodb/pricing/)。) 個別項目的這個額外 100 個位元組不會用於容量單位計算，或不供 `DescribeTable` 操作使用。

## 更新資料表
<a name="WorkingWithTables.Basics.UpdateTable"></a>

`UpdateTable` 操作可讓您執行下列其中一項：
+ 修改資料表的佈建輸送量設定 (針對佈建模式的資料表)。
+ 變更資料表的讀取/寫入容量模式。
+ 在資料表中修改全域次要索引 (請參閱[在 DynamoDB 中使用全域次要索引](GSI.md))。
+ 啟用或停用資料表上的 DynamoDB Streams (請參閱 [DynamoDB Streams 的變更資料擷取](Streams.md))。

**Example**  
下列 AWS CLI 範例顯示如何修改資料表的佈建輸送量設定。  

```
aws dynamodb update-table --table-name Music \
    --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
```

**注意**  
當您發出 `UpdateTable` 請求時，資料表的狀態會從 `AVAILABLE` 變更為 `UPDATING`。資料表在處於 `UPDATING` 時仍然完全可供使用。此程序完成時，資料表狀態會從 `UPDATING` 變更為 `AVAILABLE`。

**Example**  
下列 AWS CLI 範例顯示如何將資料表的讀取/寫入容量模式修改為隨需模式。  

```
aws dynamodb update-table --table-name Music \
    --billing-mode PAY_PER_REQUEST
```

## 刪除資料表
<a name="WorkingWithTables.Basics.DeleteTable"></a>

您可以使用 `DeleteTable` 操作來移除未使用的資料表。刪除資料表是無法復原的操作。使用 AWS 管理主控台刪除資料表，請參閲 [步驟 6：(選用) 刪除 DynamoDB 資料表以清除資源](getting-started-step-6.md)。

**Example**  
下列 AWS CLI 範例顯示如何刪除資料表。  

```
aws dynamodb delete-table --table-name Music
```

當您發出 `DeleteTable` 請求時，資料表的狀態會從 `ACTIVE` 變更為 `DELETING`。根據使用的資源 (例如資料表中所存放的資料，以及資料表上的任何串流或索引)，可能需要一些時間才能刪除資料表。

`DeleteTable` 操作結束時，資料表就不再存在於 DynamoDB 中。

## 使用刪除保護
<a name="WorkingWithTables.Basics.DeletionProtection"></a>

您可以使用刪除保護屬性，來保護資料表免於遭到意外刪除。為資料表啟用此屬性有助於確保管理員在常態資料表管理操作期間，不會意外刪除資料表。這將有助於防止您的正常業務營運中斷。

 資料表擁有者或授權管理員可控制每個資料表的刪除保護內容。每個資料表的刪除保護屬性預設是關閉的。這包括全域複本，以及從備份還原的資料表。停用資料表的刪除保護時，任何獲得 Identity and Access Management (IAM) 政策授權的使用者都可以刪除該資料表。資料表啟用刪除保護時，沒有人可將其刪除。

若要變更此設定，請移至資料表的**其他設定**，瀏覽至**刪除保護**面板，然後選取**啟用刪除保護**。

刪除保護屬性受到 DynamoDB 主控台、API、CLI/SDK 和 CloudFormation的支援。`CreateTable` API 支援資料表建立時的刪除保護屬性，而 `UpdateTable` API 支援變更現有資料表的刪除保護屬性。

**注意**  
如果刪除 AWS 帳戶，該帳戶的所有資料，包括資料表，仍會在 90 天內刪除。
如果 DynamoDB 喪失用來加密資料表的客戶自管金鑰存取權，它仍會封存資料表。存檔涉及製作資料表的備份和刪除原始資料表。

## 列出資料表名稱
<a name="WorkingWithTables.Basics.ListTables"></a>

`ListTables` 操作會傳回目前 AWS 帳戶和區域的 DynamoDB 資料表名稱。

**Example**  
下列 AWS CLI 範例示範如何列出 DynamoDB 資料表名稱。  

```
aws dynamodb list-tables
```

## 說明佈建輸送量配額
<a name="WorkingWithTables.Basics.DescribeLimits"></a>

`DescribeLimits` 操作會傳回目前 AWS 帳戶和區域的目前讀取和寫入容量配額。

**Example**  
下列 AWS CLI 範例示範如何描述目前的佈建輸送量配額。  

```
aws dynamodb describe-limits
```
輸出會顯示目前 AWS 帳戶和區域的讀取和寫入容量單位配額上限。

如需這些配額以及如何請求提高配額的詳細資訊，請參閱[輸送量預設配額](ServiceQuotas.md#default-limits-throughput)。

# 選擇 DynamoDB 資料表類別時的注意事項
<a name="WorkingWithTables.tableclasses"></a>

DynamoDB 提供兩種資料表類別，旨在協助您最佳化成本。預設值為 DynamoDB 標準資料表類別，建議大多數工作負載使用。DynamoDB 標準：不常存取 (DynamoDB 標準-IA) 資料表類別針對以儲存為主要成本的資料表進行最佳化。例如，儲存不常存取資料的資料表 (例如應用程式日誌、舊社交媒體貼文、電子商務訂單歷史記錄以及過去遊戲成就) 都是適合標準-IA 資料表類別的選項。

每個 DynamoDB 資料表都與資料表類別相關聯。與資料表相關聯的所有次要索引都使用相同的資料表類別。您可以在建立資料表時設定資料表類別 （預設為 DynamoDB 標準），並使用 、 AWS 管理主控台 AWS CLI 或 AWS SDK 更新現有資料表的資料表類別。DynamoDB 也支援 AWS CloudFormation 針對單一區域資料表 （非全域資料表的資料表） 使用 管理資料表類別。每個資料表類別針對資料儲存以及讀取和寫入要求提供不同的定價。當為您的表選擇一個表類時，請記住下列事項：
+ DynamoDB 標準資料表類別提供比 DynamoDB 標準-IA 更低的輸送量成本，對於輸送量是主要成本的資料表來說，是最具成本效益的選項。
+ DynamoDB 標準 IA 資料表類別提供比 DynamoDB 標準更低的儲存成本，對於儲存成為主要成本的資料表來說，是最具成本效益的選項。當儲存超過使用 DynamoDB 標準資料表類別的資料表輸送量 (讀取和寫入) 成本的 50% 時，DynamoDB 標準-IA 資料表類別可協助您降低資料表總成本。
+ DynamoDB 標準 – IA 資料表提供與 DynamoDB 標準資料表相同的效能、耐用性和可用性。
+ 在 DynamoDB 標準資料表與 DynamoDB 標準 – IA 資料表類之間切換不需要變更應用程式的程式碼。不論您的資料表使用何種資料表類型，都可以使用相同的 DynamoDB API 和服務端點。
+ DynamoDB 標準 – IA 資料表與所有現有的 DynamoDB 功能相容，例如自動擴展、隨需模式、存留時間 (TTL)、隨需備份、時間點復原 (PITR) 和全域次要索引。

資料表最具成本效益的資料表類別取決於資料表預期的儲存體和輸送量使用模式。您可以使用成本和用量報告和 AWS Cost Explorer，查看資料表的歷史儲存和輸送量 AWS 成本和用量。使用此歷史資料來確定資料表最具成本效益的資料表類別。若要進一步了解如何使用 AWS 成本和用量報告和 AWS Cost Explorer管，請參閱[AWS 帳單和成本管理文件](https://docs.aws.amazon.com/account-billing/index.html)。如需資料表類別定價詳細資訊，請參閱 [Amazon DynamoDB 定價](https://aws.amazon.com/dynamodb/pricing/on-demand/)。

**注意**  
資料表類別更新是一個背景流程。您仍然可以在資料表類別更新期間正常存取資料表。更新表類的時間取決於您的表流量，儲存大小和其他相關變量。在 30 天的追蹤期間內，資料表上不允許兩個以上的資料表類別更新。

# 將標籤新增至 DynamoDB 中的資源
<a name="Tagging"></a>

您可以使用 *tags* 來標示 Amazon DynamoDB 資源。標籤可讓您以不同的方式分類您的資源，例如依據目的、所有者、環境或其他條件。標籤可協助您執行以下作業：
+ 根據您指派給資源的標籤來快速識別資源。
+ 請參閱依標籤細分的 AWS 帳單。
**注意**  
任何與標記資料表相關的本機次要索引 (LSI) 和全域次要索引 (GSI) 都會自動標上相同的標籤。目前無法標記 DynamoDB Streams 使用量。

Amazon EC2、Amazon S3、DynamoDB 等 AWS 服務支援標記。有效標記可讓您跨帶有特定標籤的服務來建立報告，以提供成本深入資訊。

若要開始使用標記，請執行以下操作：

1. 了解 [DynamoDB 中的標記限制](#TaggingRestrictions)。

1. 使用 [在 DynamoDB 中標記資源](Tagging.Operations.md) 建立標籤。

1. 使用 [使用 DynamoDB 標籤建立成本分配報告](#CostAllocationReports) 追蹤每個作用中標籤 AWS 的成本。

最後，最好遵循最佳標記策略。如需相關資訊，請參閱 [AWS 標記策略](https://d0.awsstatic.com/aws-answers/AWS_Tagging_Strategies.pdf)。

## DynamoDB 中的標記限制
<a name="TaggingRestrictions"></a>

 每個標記皆包含由您定義的索引鍵和值。適用以下限制：
+  每個 DynamoDB 資料表都只能有一個具有相同索引鍵的標籤。若您嘗試新增現有的標籤 (相同索引鍵)，現有標籤的值會更新為新的值。
+  標籤鍵與值皆區分大小寫。
+  鍵長度上限為 128 個 Unicode 字元。
+ 值長度上限為 256 個 Unicode 字元。
+  允許的字元為字母、空格和數字，以及下列特殊字元：`+ - = . _ : /`
+  每一資源標籤數最多為 50。
+ 資料表中所有標籤支援的大小上限為 10 KB。
+ AWS指派的標籤名稱和值會自動指派您無法指派的`aws:`字首。 AWS指派的標籤名稱不會計入標籤限制 50 或 10 KB 的大小上限。使用者指派的標籤名稱在成本分配報告中具有字首 `user:`。
+  標籤的套用不可回溯。

# 在 DynamoDB 中標記資源
<a name="Tagging.Operations"></a>

您可以使用 Amazon DynamoDB 主控台或 AWS Command Line Interface (AWS CLI) 來新增、列出、編輯或刪除標籤。然後，您可以啟動這些使用者定義的標籤，讓它們出現在 AWS 帳單與成本管理 主控台中，以便追蹤成本配置。如需詳細資訊，請參閱[使用 DynamoDB 標籤建立成本分配報告](Tagging.md#CostAllocationReports)。

 您也可以使用 AWS 管理主控台上的標籤編輯器進行大量編輯。如需詳細資訊，請參閱[使用標籤編輯器](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)。

 若要改用 DynamoDB API，請參閱《[Amazon DynamoDB API 參考](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/)》中的下列操作：
+ [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)
+ [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)
+ [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)

**Topics**
+ [設定依標籤篩選的許可](#Tagging.Operations.permissions)
+ [將標籤新增至新的或現有資料表 (AWS 管理主控台)](#Tagging.Operations.using-console)
+ [將標籤新增至新的或現有資料表 (AWS CLI)](#Tagging.Operations.using-cli)

## 設定依標籤篩選的許可
<a name="Tagging.Operations.permissions"></a>

若要使用標籤篩選 DynamoDB 主控台中的資料表清單，請確定使用者的政策包含對下列操作的存取權：
+ `tag:GetTagKeys`
+ `tag:GetTagValues`

您可以依照下列步驟，將新的 IAM 政策連接至使用者，以便存取這些操作。

1. 使用管理員使用者前往 [IAM 主控台](https://console.aws.amazon.com/iam/)。

1. 在左導覽選單中，選取 Policies (政策)。

1. 選取 Create Policy (建立政策)。

1. 將下列政策貼入至 JSON 編輯器。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetTagKeys",
                   "tag:GetTagValues"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 完成協助程式並指派政策的名稱 (例如 `TagKeysAndValuesReadAccess`)。

1. 在左側導覽選單中，選擇 Users (使用者)。

1. 從清單中選取您通常用於存取 DynamoDB 主控台的使用者。

1. 選取 Add permissions (新增許可)。

1. 選取 Attach existing policies directly (直接連接現有政策)。

1. 從清單中選取您先前建立的政策。

1. 完成協助程式。

## 將標籤新增至新的或現有資料表 (AWS 管理主控台)
<a name="Tagging.Operations.using-console"></a>

您可以使用 DynamoDB 主控台，在建立新資料表時在其中新增標籤，或為現有的資料表新增、編輯或刪除標籤。

**在建立時為資源加上標籤 (主控台)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/) 開啟 DynamoDB 主控台。

1. 在導覽窗格中，選擇 **Tables** (資料表)，然後選擇 **Create table** (建立資料表)。

1. 在 **Create DynamoDB table** (建立 DynamoDB 資料表) 頁面上，提供名稱和主索引鍵。在 **Tags** (標籤) 區段中，選擇 **Add new tag** (新增標籤)，然後輸入您要使用的標籤。

   如需標籤結構的相關資訊，請參閱 [DynamoDB 中的標記限制](Tagging.md#TaggingRestrictions)。

   如需建立資料表的詳細資訊，請參閱 [DynamoDB 資料表上的基本操作](WorkingWithTables.Basics.md)。

**為現有的資源加上標籤 (主控台)**

請在 [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/) 開啟 DynamoDB 主控台。

1. 在導覽窗格中，選擇 **Tables** (資料表)。

1. 在清單中選擇資料表，然後選擇 **Additional settings** (其他設定) 索引標籤。您可以新增、編輯或刪除 **Tags** (標籤) 頁面底部的區段。

## 將標籤新增至新的或現有資料表 (AWS CLI)
<a name="Tagging.Operations.using-cli"></a>

下列範例示範如何在建立資料表和索引時，使用 AWS CLI 指定標籤，以及標記現有資源。

**在建立時為資源加上標籤 (AWS CLI)**
+ 以下範例會建立新 `Movies` 資料表並使用 `blueTeam` 值來新增 `Owner` 標籤：

  ```
  aws dynamodb create-table \
      --table-name Movies \
      --attribute-definitions AttributeName=Title,AttributeType=S \
      --key-schema AttributeName=Title,KeyType=HASH \
      --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
      --tags Key=Owner,Value=blueTeam
  ```

**為現有的資源加上標籤 (AWS CLI)**
+ 以下範例會為 `Movies` 資料表新增 `blueTeam` 值的 `Owner` 標籤：

  ```
  aws dynamodb tag-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies \
      --tags Key=Owner,Value=blueTeam
  ```

**列出資料表的所有標籤 (AWS CLI)**
+ 以下範例列出與 `Movies` 資料表相關聯的所有標籤：

  ```
  aws dynamodb list-tags-of-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies
  ```

## 使用 DynamoDB 標籤建立成本分配報告
<a name="CostAllocationReports"></a>

AWS 使用標籤來整理成本分配報告中的資源成本。 AWS 提供兩種類型的成本分配標籤：
+  AWS產生的 tag. AWS defines、建立和套用此標籤。
+ 使用者定義的標籤。您可以定義、建立和套用這些標籤。

您必須分別啟用這兩種標籤，它們才會顯示在 Cost Explorer 或成本分配報告中。

 若要啟用 AWS產生的標籤：

1.  登入 AWS 管理主控台 並開啟 Billing and Cost Management 主控台，網址為 [https：//https://console.aws.amazon.com/billing/home\$1/。](https://console.aws.amazon.com/billing/home#/.)

1.  在導覽窗格中，選擇 **Cost Allocation Tags** (成本分配標籤)。

1.  在 **AWS-Generated Cost Allocation Tags** (AWS產生的成本分配標籤) 下，選擇 **Activate** (啟用)。

 若要啟用使用者定義的標籤：

1.  登入 AWS 管理主控台 並開啟 Billing and Cost Management 主控台，網址為 [https：//https://console.aws.amazon.com/billing/home\$1/。](https://console.aws.amazon.com/billing/home#/.)

1.  在導覽窗格中，選擇 **Cost Allocation Tags** (成本分配標籤)。

1.  在 **User-Defined Cost Allocation Tags** (使用者定義的成本分配標籤) 下，選擇 **Activate** (啟用)。

 在您建立和啟用標籤後， AWS 會產生成本分配報告，其中包含依作用中標籤分組的用量和成本。成本分配報告包含每個帳單期間的所有 AWS 成本。該報告同時包含有標籤和沒標籤的資源，以便您可清楚地整理資源的費用。

**注意**  
 目前，從 DynamoDB 傳出的任何資料都不會在成本分配報告上依標籤細分。

 如需詳細資訊，請參閱[使用成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。