

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

# 標記您的 MemoryDB 資源
<a name="tagging-resources"></a>

為了協助您管理叢集和其他 MemoryDB 資源，您可以將自己的中繼資料以標籤形式指派給每個資源。標籤可讓您以不同的方式分類 AWS 資源，例如依用途、擁有者或環境。當您有許多相同類型的資源時，這將會很有用，因為—您可以依據先前指派的標籤，快速識別特定的資源。本主題說明標籤並示範如何建立它們。

**警告**  
根據最佳實務，建議您不要在標籤中包含敏感資料。

## 標籤基本概念
<a name="tagging-basics"></a>

標籤是您指派給 AWS 資源的標籤。每個標籤皆包含由您定義的一個金鑰與一個選用值。標籤可讓您以不同的方式分類 AWS 資源，例如依用途或擁有者。例如，您可以為帳戶的 MemoryDB 叢集定義一組標籤，協助您追蹤每個叢集的擁有者和使用者群組。

我們建議您為每種資源類型建立符合您需求的標籤金鑰。使用一致的標籤金鑰組可讓您更輕鬆管理您的 資源。您可以根據您新增的標籤搜尋和篩選資源。如需如何實作有效資源標記策略的詳細資訊，請參閱 [AWS 白皮書標記最佳實務](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)。

標籤對 MemoryDB 沒有任何語意意義，並嚴格解譯為字元字串。此外，標籤不會自動指派給您的資源。您可以編輯標籤金鑰和值，並且可以隨時從資源移除標籤。您可以將標籤的值設為 `null`。若您將與現有標籤具有相同鍵的標籤新增到該資源，則新值會覆寫舊值。如果您刪除資源，也會刪除任何該資源的標籤。

 您可以使用 AWS 管理主控台、 AWS CLI和 MemoryDB API 來使用標籤。

如果您使用的是 IAM，您可以控制 AWS 帳戶中哪些使用者具有建立、編輯或刪除標籤的許可。如需詳細資訊，請參閱[資源層級許可](iam.resourcelevelpermissions.md)。

## 您可以標記的資源
<a name="tagging-your-resources"></a>

您可以標記帳戶中已存在的大多數 MemoryDB 資源。下表列出支援標籤建立的資源。如果您使用的是 AWS 管理主控台，您可以使用標籤[編輯器將標籤](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)套用至資源。有些資源畫面可讓您在建立資源時指定資源的標籤；例如，具有 Name 索引鍵和您指定值的標籤。在大多數的案例中，主控台會立即在建立資源後套用標籤 (而非在資源建立過程時)。主控台可能會根據**名稱**標籤組織資源，但此標籤對 MemoryDB 服務沒有任何語意意義。

 此外，有些資源建立動作可讓您在建立資源時指定資源的標籤。若標籤無法在資源建立時套用，我們會轉返資源建立程序。這可確保資源不是具有標籤建立，就是不會建立，因此無論何時都不會有不具有標籤的資源。藉由在建立時為資源建立標籤，您可以消除在資源建立後執行自訂標籤指令碼的必要。

 如果您使用的是 Amazon MemoryDB API、 CLI AWS 或 AWS SDK，您可以使用相關 MemoryDB API 動作上的 `Tags` 參數來套用標籤。這些類別為：
+ `CreateCluster`
+ `CopySnapshot`
+ `CreateParameterGroup`
+ `CreateSubnetGroup`
+ `CreateSnapshot`
+ `CreateACL`
+ `CreateUser`
+ `CreateMultiRegionCluster`

下表說明可標記的 MemoryDB 資源，以及可使用 MemoryDB API、CLI AWS 或 AWS SDK 建立時可標記的資源。


**MemoryDB 資源的標記支援**  

| 資源 | 支援標籤 | 支援在建立時標記 | 
| --- | --- | --- | 
| parametergroup | 是 | 是 | 
| subnetgroup | 是 | 是 | 
| 叢集 | 是 | 是 | 
| 快照 | 是 | 是 | 
| 使用者 | 是 | 是 | 
| acl | 是 | 是 | 
| 多區域叢集 | 是 | 是 | 

您可以在 IAM 政策中將標籤型資源層級許可套用至支援建立時標記的 MemoryDB API 動作，以對可在建立時標記資源的使用者和群組實作精細控制。您的資源從建立時便已獲得妥善的保護，標籤會立即套用到您的資源。因此，控制資源使用情況的任何標籤式資源層級許可都會立即生效。您可以更準確的追蹤和報告您的資源。您可以強制新資源使用標籤，並控制哪些標籤金鑰和值會在您的資源上設定。

如需詳細資訊，請參閱[為資源加上標籤的範例](#tagging-your-resources-example)。

 如需為資源加上標籤以便計費的詳細資訊，請參閱「[使用成本配置標籤監控成本](tagging.md)」。

## 標記叢集和快照，以及多區域叢集
<a name="tagging-clusters-snapshots"></a>

以下規則適用於屬於請求作業一部分的標記程序：
+ **CreateCluster**：
  +  如果提供 `--cluster-name`：

    如果請求中包含標籤，則會標記叢集。
  + 如果提供 `--snapshot-name`：

    如果請求中包含標籤，則只會使用這些標籤來標記叢集。如果請求中未包含任何標籤，快照標籤將新增至叢集。
+ **CreateSnapshot**：
  +  如果提供 `--cluster-name`：

    如果請求中包含標籤，就只會將這些請求標籤新增至快照。如果請求中未包含任何標籤，叢集標籤將新增至快照。
  + 針對自動快照：

    標籤會從叢集標籤傳播。
+ **CopySnapshot**：

  如果請求中包含標籤，就只會將這些請求標籤新增至快照。如果請求中不含任何標籤，就會將來源快照標籤新增至複製的快照。
+ **TagResource** 和 **UntagResource**：

  標籤將從資源新增/移除。

## 標記多區域叢集
<a name="tagging-multi-region-clusters"></a>

MemoryDB 多大型叢集是全域資源。因此，可以透過在支援 MemoryDB Multi-Region 的任何指定區域中調用相關 APIs，在多區域叢集上指定、修改或列出標籤。如需區域支援的詳細資訊，請參閱 [先決條件和限制](multi-region.prereq.md)。

多區域叢集上的標籤獨立於區域叢集上的標籤。您可以在多區域叢集上指定不同的標籤集，其中包含區域叢集。這些標籤之間沒有階層連線，而且不會透過這些資源類型之間的階層進行複製。

當您透過 `TagResource`和 `UntagResource` APIs 新增或移除標籤時，您可能不會在 ListTags API 回應中立即看到最新的有效標籤，因為標籤最終會特別針對多區域叢集保持一致。

## 標籤限制
<a name="tagging-restrictions"></a>

以下基本限制適用於標籤：
+ 每一資源最多標籤數 – 50
+ 對於每一個資源，每個標籤金鑰必須是唯一的，且每個標籤金鑰只能有一個值。
+ 索引鍵長度上限 - 128 個 UTF-8 Unicode 字元。
+ 值長度上限 - 256 個 UTF-8 Unicode 字元。
+ 雖然 MemoryDB 允許其標籤中的任何字元，但其他服務可能具有限制性。服務間允許的字元包括：可用 UTF-8 表示的英文字母、數字和空格，還有以下字元：\$1 - = . \$1 : / @
+ 標籤金鑰與值皆區分大小寫。
+ 字`aws:`首會保留供 AWS 使用。如果標籤具有此字首的標籤金鑰，則您無法編輯或刪除標籤的金鑰或值。具 `aws:` 字首的標籤，不算在受資源限制的標籤計數內。

您無法僅根據標籤終止、停止或刪除資源。您必須指定資源識別符。例如，若要刪除您套用稱為 `DeleteMe` 標籤金鑰的快照，您必須搭配快照的資源識別符 (例如 `DeleteSnapshot`) 使用 `snap-1234567890abcdef0` 動作。

如需您可以標記的 MemoryDB 資源的詳細資訊，請參閱 [您可以標記的資源](#tagging-your-resources)。

## 為資源加上標籤的範例
<a name="tagging-your-resources-example"></a>
+ 將標籤新增至叢集。

  ```
  aws memorydb tag-resource \
  --resource-arn arn:aws:memorydb:us-east-1:111111222233:cluster/my-cluster \
  --tags Key="project",Value="XYZ" Key="memorydb",Value="Service"
  ```
+ 使用標籤建立叢集。

  ```
  aws memorydb create-cluster \
  --cluster-name testing-tags \
  --description cluster-test \
  --subnet-group-name test \
  --node-type db.r6g.large \
  --acl-name open-access \
  --tags Key="project",Value="XYZ" Key="memorydb",Value="Service"
  ```
+ 使用標籤建立快照。

  在這種情況下，如果您在請求時新增標籤，即使叢集包含標籤，快照將只會收到請求標籤。

  ```
  aws memorydb create-snapshot \
  --cluster-name testing-tags \
  --snapshot-name bkp-testing-tags-mycluster \
  --tags Key="work",Value="foo"
  ```

# 使用成本配置標籤監控成本
<a name="tagging"></a>

當您將成本分配標籤新增至 MemoryDB 中的資源時，您可以透過依資源標籤值將發票上的費用分組來追蹤成本。

MemoryDB 成本分配標籤是您定義並與 MemoryDB 資源建立關聯的鍵值對。索引鍵與值皆會區分大小寫。您可以使用標籤索引鍵來定義類別，而標籤值可為該類別中的某個項目。例如，您可以定義標籤索引鍵 `CostCenter`，且標籤值為 `10010`，指出資源是指派給 10010 成本中心。您也可利用 `Environment` 之類的索引鍵，和 `test` 或 `production` 之類的值，以使用標籤來指定用於測試或生產的資源。我們建議您使用一組一致的標籤索引鍵，讓您更輕鬆地追蹤與資源關聯的成本。

使用成本分配標籤來整理 AWS 帳單，以反映您自己的成本結構。若要這樣做，請註冊以取得包含標籤索引鍵值 AWS 的帳戶帳單。接著，若要查看合併資源的成本，請根據具有相同標籤鍵值的資源來整理您的帳單資訊。例如，您可以使用特定應用程式名稱來標記數個資源，然後整理帳單資訊以查看該應用程式跨數項服務的總成本。

您也可以結合標籤來以更高的細節層次追蹤成本。例如，若要按區域追蹤您的服務成本，您可以使用標籤索引鍵 `Service` 和 `Region`。在某個資源上，您會有值 `MemoryDB` 和 `Asia Pacific (Singapore)`，而在另一個資源上，則有值 `MemoryDB` 和 `Europe (Frankfurt)`。然後，您可以查看依區域劃分的 MemoryDB 總成本。如需詳細資訊，請參閱《*AWS Billing 使用者指南*》中的[使用成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

您可以將 MemoryDB 成本分配標籤新增至 MemoryDB 叢集。新增、列出、修改、複製或移除標籤時，該操作只會套用至指定的叢集。

**MemoryDB 成本分配標籤的特性**
+ 成本分配標籤會套用至 CLI 和 API 操作中指定為 ARN 的 MemoryDB 資源。資源類型會是「叢集」。

  ARN 格式： `arn:aws:memorydb:<region>:<customer-id>:<resource-type>/<resource-name>`

  ARN 範例：`arn:aws:memorydb:us-east-1:1234567890:cluster/my-cluster`
+ 標籤金鑰是標籤必要的名稱。索引鍵的字串值的長度可以是 1 到 128 個 Unicode 字元，不可在前面加上 `aws:`。此字串只能包含一組 Unicode 字母、數字、空格、底線 ( \$1 )、句點 ( . )、冒號 ( : )、反斜線 ( \$1 )、等號 ( = )、加號 ( \$1 )、連字號 ( - ) 或 @ 符號 (@)。
+ 標籤值為標籤的選用值。值的字串值長度可以是 1 到 256 個 Unicode 字元，不可在前面加上 `aws:`。此字串只能包含一組 Unicode 字母、數字、空格、底線 ( \$1 )、句點 ( . )、冒號 ( : )、反斜線 ( \$1 )、等號 ( = )、加號 ( \$1 )、連字號 ( - ) 或 @ 符號 (@)。
+ MemoryDB 資源最多可有 50 個標籤。
+ 標籤組中的值不必是唯一的。例如，您可以有一個標籤組，其中的索引鍵 `Service` 和 `Application` 都有值 `MemoryDB`。

AWS 不會將任何語意意義套用至您的標籤。標籤會嚴格解譯為字元字串。 AWS 不會自動在任何 MemoryDB 資源上設定任何標籤。

# 使用 管理您的成本分配標籤 AWS CLI
<a name="tagging.managing.cli"></a>

您可以使用 AWS CLI 新增、修改或移除成本分配標籤。

範例 ARN：`arn:aws:memorydb:us-east-1:1234567890:cluster/my-cluster`

**Topics**
+ [使用 列出標籤 AWS CLI](#tagging.managing.cli.List)
+ [使用 新增標籤 AWS CLI](#tagging.managing.cli.Add)
+ [使用 修改標籤 AWS CLI](#tagging.managing.cli.modify)
+ [使用 移除標籤 AWS CLI](#tagging.managing.cli.Remove)

## 使用 列出標籤 AWS CLI
<a name="tagging.managing.cli.List"></a>

您可以使用 AWS CLI 來列出現有 MemoryDB 資源上的標籤，方法是使用 [list-tags](https://docs.aws.amazon.com/cli/latest/reference/memorydb/list-tags.html) 操作。

下列程式碼使用 AWS CLI 列出 us-east-1 `my-cluster` 區域中 MemoryDB 叢集上的標籤。

若為 Linux、macOS 或 Unix：

```
aws memorydb list-tags \
  --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster
```

針對 Windows：

```
aws memorydb list-tags ^
  --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster
```

此操作的輸出看起來應該類似以下，這是資源上所有標籤的清單。

```
{
   "TagList": [
      {
         "Value": "10110",
         "Key": "CostCenter"
      },
      {
         "Value": "EC2",
         "Key": "Service"
      }
   ]
}
```

如果資源上沒有標籤，輸出會是空的標籤清單。

```
{
   "TagList": []
}
```

如需詳細資訊，請參閱 AWS CLI for MemoryDB [list-tags](https://docs.aws.amazon.com/cli/latest/reference/memorydb/list-tags.html)。

## 使用 新增標籤 AWS CLI
<a name="tagging.managing.cli.Add"></a>

您可以使用 使用 CLI [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/tag-resource.html) 操作 AWS CLI ，將標籤新增至現有的 MemoryDB 資源。如果標籤索引鍵不存在於資源上，則索引鍵和值會新增至資源。如果索引鍵已存在於資源上，則與該索引鍵相關聯的值會更新為新的值。

下列程式碼使用 AWS CLI 將索引鍵 `Service`和 `Region` 與值 `memorydb` 和 `us-east-1`分別新增至 us-east-1 `my-cluster` 區域中的叢集。

若為 Linux、macOS 或 Unix：

```
aws memorydb tag-resource \
 --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster \
 --tags Key=Service,Value=memorydb \
        Key=Region,Value=us-east-1
```

針對 Windows：

```
aws memorydb tag-resource ^
 --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster ^
 --tags Key=Service,Value=memorydb ^
        Key=Region,Value=us-east-1
```

此操作的輸出看起來應該類似以下，這是在操作後資源上所有標籤的清單。

```
{
   "TagList": [
      {
         "Value": "memorydb",
         "Key": "Service"
      },
      {
         "Value": "us-east-1",
         "Key": "Region"
      }
   ]
}
```

如需詳細資訊，請參閱 AWS CLI for MemoryDB [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/tag-resource.html)。

當您使用 操作 [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/create-cluster.html) 建立新叢集時 AWS CLI ，您也可以使用 將標籤新增至叢集。

## 使用 修改標籤 AWS CLI
<a name="tagging.managing.cli.modify"></a>

您可以使用 AWS CLI 來修改 MemoryDB 叢集上的標籤。

若要修改標籤：
+ 使用 [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/tag-resource.html) 來新增標籤和值，或變更與現有標籤相關聯的值。
+ 使用 [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/untag-resource.html) 從資源中移除指定的標籤。

這兩項操作的輸出會是指定叢集上標籤和其值的清單。

## 使用 移除標籤 AWS CLI
<a name="tagging.managing.cli.Remove"></a>

您可以使用 [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/untag-resource.html) 操作 AWS CLI ，從 MemoryDB 叢集的現有 移除標籤。

下列程式碼使用 AWS CLI ，`Region`從 us-east-1 `my-cluster` 區域中的叢集移除具有金鑰 `Service`和 的標籤。

若為 Linux、macOS 或 Unix：

```
aws memorydb untag-resource \
 --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster \
 --tag-keys Region Service
```

針對 Windows：

```
aws memorydb untag-resource ^
 --resource-arn arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster ^
 --tag-keys Region Service
```

此操作的輸出看起來應該類似以下，這是在操作後資源上所有標籤的清單。

```
{
   "TagList": []
}
```

如需詳細資訊，請參閱 AWS CLI for MemoryDB [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/memorydb/untag-resource.html)。

# 使用 MemoryDB API 管理您的成本分配標籤
<a name="tagging.managing.api"></a>

您可以使用 MemoryDB API 來新增、修改或移除成本分配標籤。

成本分配標籤會套用至叢集的 MemoryDB。要加標籤的叢集是使用 ARN (Amazon Resource Name) 來指定。

範例 ARN：`arn:aws:memorydb:us-east-1:1234567890:cluster/my-cluster`

**Topics**
+ [使用 MemoryDB API 列出標籤](#tagging.managing.api.List)
+ [使用 MemoryDB API 新增標籤](#tagging.managing.api.Add)
+ [使用 MemoryDB API 修改標籤](#tagging.managing.api.modify)
+ [使用 MemoryDB API 移除標籤](#tagging.managing.api.Remove)

## 使用 MemoryDB API 列出標籤
<a name="tagging.managing.api.List"></a>

您可以使用 MemoryDB API，透過 [ListTags](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_ListTags.html) 操作列出現有資源上的標籤。

下列程式碼使用 MemoryDB API 列出 us-east-1 `my-cluster` 區域中資源上的標籤。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=ListTags
   &ResourceArn=arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Version=2021-01-01
   &Timestamp=20210802T192317Z
   &X-Amz-Credential=<credential>
```

## 使用 MemoryDB API 新增標籤
<a name="tagging.managing.api.Add"></a>

您可以使用 MemoryDB API，透過 [TagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_TagResource.html) 操作將標籤新增至現有的 MemoryDB 叢集。如果標籤索引鍵不存在於資源上，則索引鍵和值會新增至資源。如果索引鍵已存在於資源上，則與該索引鍵相關聯的值會更新為新的值。

下列程式碼使用 MemoryDB API 將索引鍵 `Service` 和 `Region` 與值 `memorydb`和 `us-east-1`分別新增至 `my-cluster` us-east-1 區域中的資源。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=TagResource
   &ResourceArn=arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Tags.member.1.Key=Service 
   &Tags.member.1.Value=memorydb
   &Tags.member.2.Key=Region
   &Tags.member.2.Value=us-east-1
   &Version=2021-01-01
   &Timestamp=20210802T192317Z
   &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 [TagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_TagResource.html)。

## 使用 MemoryDB API 修改標籤
<a name="tagging.managing.api.modify"></a>

您可以使用 MemoryDB API 來修改 MemoryDB 叢集上的標籤。

若要修改標籤的值：
+ 使用 [TagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_TagResource.html) 操作來新增標籤和值，或變更現有標籤的值。
+ 使用 [UntagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UntagResource.html) 從資源中移除標籤。

這兩項操作的輸出會是指定資源上標籤和其值的清單。

## 使用 MemoryDB API 移除標籤
<a name="tagging.managing.api.Remove"></a>

您可以使用 MemoryDB API，透過 [UntagResource](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UntagResource.html) 操作從現有的 MemoryDB 叢集移除標籤。

下列程式碼使用 MemoryDB API，`Region`從 us-east-1 `my-cluster` 區域中的叢集移除具有金鑰 `Service`和 的標籤。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=UntagResource
   &ResourceArn=arn:aws:memorydb:us-east-1:0123456789:cluster/my-cluster
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &TagKeys.member.1=Service
   &TagKeys.member.2=Region
   &Version=2021-01-01
   &Timestamp=20210802T192317Z
   &X-Amz-Credential=<credential>
```