

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为资源添加 ElastiCache 标签
<a name="Tagging-Resources"></a>

为了帮助您管理集群和其他 ElastiCache 资源，您可以以标签的形式为每个资源分配自己的元数据。标签使您能够以不同的方式对AWS资源进行分类，例如按用途、所有者或环境进行分类。这在您具有相同类型的很多资源时会很有用 – 您可以根据分配给特定资源的标签快速识别该资源。本主题介绍标签并说明如何创建标签。

**警告**  
作为最佳实践，我们建议您不要在标签中包含敏感数据。

## 标签基本知识
<a name="Tagging-basics"></a>

标签是您分配给AWS资源的标签。每个标签都包含定义的一个键和一个可选值。标签使您能够以不同的方式对AWS资源进行分类，例如按用途或所有者进行分类。例如，您可以为账户的集 ElastiCache 群定义一组标签，以帮助您跟踪每个实例的所有者和用户组。

我们建议您针对每类资源设计一组标签，以满足您的需要。使用一组连续的标签键，管理 资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。有关如何实施有效的资源标记策略的更多信息，请参阅 [AWS白皮书标记最佳实践](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)。

标签没有任何语义含义， ElastiCache 并且严格解释为字符串。同时，标签不会自动分配至您的资源。您可以修改标签的键和值，还可以随时删除资源的标签。您可以将标签的值设置为 `null`。如果添加的标签的键与该资源上现有标签的键相同，新值就会覆盖旧值。如果您删除资源，则该资源的所有标签也会被删除。此外，如果添加或删除复制组的标签，则也将向该复制组中的所有节点添加或删除其标签。

 您可以使用AWS 管理控制台AWS CLI、和 ElastiCache API 处理标签。

如果您使用的是 IAM，则可以控制AWS账户中哪些用户有权创建、编辑或删除标签。有关更多信息，请参阅 [资源级权限](IAM.ResourceLevelPermissions.md)。

## 您可以为之添加标签的资源
<a name="Tagging-your-resources"></a>

您可以为账户中已存在的大多数 ElastiCache 资源添加标签。下表列出了支持标记的资源。如果您使用的是AWS 管理控制台，则可以使用标签[编辑器对资源应用标签](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)。在您创建资源时，某些资源屏幕支持为资源指定标签；例如，包含 Name 键和您指定的值的标签。在大多数情况下，控制台会在资源创建后 （而不是在资源创建期间）立即应用标签。控制台可以根据**名称**标签组织资源，但是此标签对 ElastiCache 服务没有任何语义意义。

 此外，某些资源创建操作让您可以在创建资源时为其指定标签。如果无法在资源创建期间应用标签，系统会回滚资源创建过程。这样可确保要么创建带有标签的资源，要么根本不创建资源，即任何时候都不会创建出未标记的资源。通过在创建时标记资源，您不需要在资源创建后运行自定义标记脚本。

 如果您使用的是亚马逊 ElastiCache API、AWS CLI 或AWS软件开发工具包，则可以使用相关 ElastiCache API 操作中的`Tags`参数来应用标签。它们是：
+ `CreateServerlessCache`
+ `CreateCacheCluster`
+ `CreateReplicationGroup`
+ `CopyServerlessCacheSnapshot`
+ `CopySnapshot`
+ `CreateCacheParameterGroup`
+ `CreateCacheSecurityGroup`
+ `CreateCacheSubnetGroup`
+ `CreateServerlessCacheSnapshot`
+ `CreateSnapshot`
+ `CreateUserGroup`
+ `CreateUser`
+ `PurchaseReservedCacheNodesOffering`

下表描述了可以标记的 ElastiCache 资源，以及可以使用 ElastiCache API、AWS CLI 或AWS SDK 在创建时标记的资源。


**为资源添加标签支持 ElastiCache**  

| 资源 | 支持标签 | 支持在创建时标记 | 
| --- | --- | --- | 
| serverlesscache | 支持 | 是 | 
| parametergroup | 支持 | 是 | 
| securitygroup | 支持 | 是 | 
| subnetgroup | 支持 | 是 | 
| replicationgroup | 支持 | 是 | 
| cluster | 支持 | 是 | 
| reserved-instance | 支持 | 是 | 
| serverlesscachesnapshot | 支持 | 是 | 
| 快照 | 支持 | 是 | 
| 用户 | 是 | 是 | 
| usergroup | 支持 | 是 | 

**注意**  
无法标记全局数据存储。

您可以将您的 IAM 策略中基于标签的资源级权限应用于支持在创建时添加标签的 ElastiCache API 操作，以实现对可以在创建时标记资源的用户和群组的精细控制。资源从创建开始就会受到适当的保护 – 标签会立即应用于资源。因此，控制资源使用的任何基于标签的资源级权限都会立即生效。可以更准确地对您的资源进行跟踪和报告。您可以强制对新资源使用标记，可以控制对资源设置哪些标签键和值。

有关更多信息，请参阅 [标记资源示例](#Tagging-your-resources-example)。

 有关标记资源以便于计费的更多信息，请参阅 [使用成本分配标签监控成本](Tagging.md)。

## 标记缓存和快照
<a name="Tagging-replication-groups-snapshots"></a>

以下规则适用于请求操作中的标记：
+ **CreateReplicationGroup**: 
  + 如果请求中包含 `--primary-cluster-id` 和 `--tags` 参数，则会向复制组添加请求标签且标签会传播到复制组中的所有集群。如果主集群具有现有标签，则这些标签将被请求标签覆盖，以便所有节点上的标签保持一直。

    如果没有请求标签，则主集群标记将添加到复制组并传播到所有集群。
  + 如果提供了 `--snapshot-name` 或 `--serverless-cache-snapshot-name`：

    如果请求中包含标签，则仅使用这些标签对复制组进行标记。如果请求中未包含任何标签，则快照标签将添加到复制组。
  + 如果提供了 `--global-replication-group-id`：

    如果请求中包含标签，则请求标签将添加到复制组并传播到所有集群。
+ **CreateCacheCluster** : 
  +  如果提供了 `--replication-group-id`：

    如果请求中包含标签，则仅使用这些标签对集群进行标记。如果请求中未包含任何标签，则集群将继承复制组标签，而不是主集群的标签。
  + 如果提供了 `--snapshot-name`：

    如果请求中包含标签，则仅使用这些标签对集群进行标记。如果请求中未包含任何标签，则将向集群添加快照标签。
+ **CreateServerlessCache** : 
  + 如果请求中包含标签，则仅将请求标签添加到无服务器缓存。
+ **CreateSnapshot** : 
  +  如果提供了 `--replication-group-id`：

    如果请求中包含标签，则仅将请求标签添加到快照。如果请求中未包含任何标签，则复制组标签将添加到快照。
  + 如果提供了 `--cache-cluster-id`：

    如果请求中包含标签，则仅将请求标签添加到快照。如果请求中未包含任何标签，则集群标签将添加到快照。
  + 自动快照：

    标签将传播自复制组标签。
+ **CreateServerlessCacheSnapshot** : 
  + 如果请求中包含标签，则仅将请求标签添加到无服务器缓存快照。
+ **CopySnapshot** : 
  + 如果请求中包含标签，则仅将请求标签添加到快照。如果请求中未包含任何标签，则源快照标签将添加到复制的快照。
+ **CopyServerlessCacheSnapshot** : 
  + 如果请求中包含标签，则仅将请求标签添加到无服务器缓存快照。
+ **AddTagsToResource**和 **RemoveTagsFromResource**：
  + 标签将 added/removed 来自复制组，操作将传播到复制组中的所有集群。
**注意**  
**AddTagsToResource**且**RemoveTagsFromResource**不能用于默认参数和安全组。
+ **IncreaseReplicaCount** 和 **ModifyReplicationGroupShardConfiguration**：
  + 对添加到复制组的所有新集群应用与复制组相同的标签。

## 标签限制
<a name="Tagging-restrictions"></a>

下面是适用于 标签的基本限制：
+ 每个资源的标签数上限：50
+ 对于每个资源，每个标签键必须是唯一的，并且每个标签键只能有一个值。
+ 最大键长度 – 128 个 Unicode 字符 （采用 UTF-8 格式)。
+ 最大值长度 – 256 个 Unicode 字符 （采用 UTF-8 格式)。
+ 尽管 ElastiCache 允许在其标签中使用任何字符，但其他服务可能会受到限制。允许在不同的服务中使用的字符包括：可以使用 UTF-8 表示的字母、数字和空格以及以下字符：\$1 - = . \$1 : / @
+ 标签键和值区分大小写。
+ 该`aws:`前缀已保留供AWS使用。如果某个标签具有带有此标签键，则您无法编辑该标签的键或值。具有 `aws:` 前缀的标签不计入每个资源的标签数限制。

您不能仅依据标签终止或删除资源，而必须指定资源的标识符。例如，要删除您使用名为 `DeleteMe` 的标签键标记的快照，您必须将 `DeleteSnapshot` 操作与快照的资源标识符（如 `snap-1234567890abcdef0`）结合使用。

有关可以标记的 ElastiCache 资源的更多信息，请参阅[您可以为之添加标签的资源](#Tagging-your-resources)。

## 标记资源示例
<a name="Tagging-your-resources-example"></a>
+ 使用标签创建无服务器缓存。此示例使用 Memcached 作为引擎。

  ```
  aws elasticache create-serverless-cache \
      --serverless-cache-name CacheName \
      --engine memcached
      --tags Key="Cost Center", Value="1110001" Key="project",Value="XYZ"
  ```
+ 向无服务器缓存添加标签

  ```
  aws elasticache add-tags-to-resource \
  --resource-name arn:aws:elasticache:us-east-1:111111222233:serverlesscache:my-cache \
  --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  ```
+ 向复制组添加标签。

  ```
  aws elasticache add-tags-to-resource \
  --resource-name arn:aws:elasticache:us-east-1:111111222233:replicationgroup:my-rg \
  --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  ```
+ 使用标签创建缓存群集。

  ```
  aws elasticache create-cache-cluster \
  --cluster-id testing-tags \
  --cluster-description cluster-test \
  --cache-subnet-group-name test \
  --cache-node-type cache.t2.micro \
  --engine valkey \
  --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  ```
+ 使用标签创建缓存群集。此示例使用 Redis 作为引擎。

  ```
  aws elasticache create-cache-cluster \
  --cluster-id testing-tags \
  --cluster-description cluster-test \
  --cache-subnet-group-name test \
  --cache-node-type cache.t2.micro \
  --engine valkey \
  --tags Key="project",Value="XYZ" Key="Elasticache",Value="Service"
  ```
+ 创建具有标签的无服务器快照。此示例使用 Memcached 作为引擎。

  ```
  aws elasticache create-serverless-cache-snapshot \
  --serverless-cache-name testing-tags \
  --serverless-cache-snapshot-name bkp-testing-tags-scs \
  --tags Key="work",Value="foo"
  ```
+ 创建具有标签的快照。

  快照目前仅适用于 Redis。在此情况下，如果您根据请求添加标签，即使复制组包含标签，快照也将仅接收请求标签。

  ```
  aws elasticache create-snapshot \
  --replication-group-id testing-tags \
  --snapshot-name bkp-testing-tags-rg \
  --tags Key="work",Value="foo"
  ```

## 基于标签的访问控制策略示例
<a name="Tagging-access-control"></a>

1. 允许仅当集群具有 Project=XYZ 标签时才对该集群应用 `AddTagsToResource` 操作。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "elasticache:AddTagsToResource",
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/Project": "XYZ"
                   }
               }
           }
       ]
   }
   ```

------

1. 当复制组包含 Project 和 Service 标签且密钥与 Project 和 Service 不同时，允许该复制组执行 `RemoveTagsFromResource` 操作。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "elasticache:RemoveTagsFromResource",
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/Service": "Elasticache",
                       "aws:ResourceTag/Project": "XYZ"
                   },                
                   "ForAnyValue:StringNotEqualsIgnoreCase": {
                       "aws:TagKeys": [
                           "Project",
                           "Service"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. 允许仅当标签与 Project 和 Service 不同时才能对任何资源应用 `AddTagsToResource`。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "elasticache:AddTagsToResource",
               "Resource": [
                   "arn:aws:elasticache:*:*:*:*"
               ],
               "Condition": {
                   "ForAnyValue:StringNotEqualsIgnoreCase": {
                       "aws:TagKeys": [ 
                           "Service", 
                           "Project" 
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. 在请求具有 `Tag Project=Foo` 时拒绝 `CreateReplicationGroup` 操作。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "elasticache:CreateReplicationGroup",
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Project": "Foo"
                   }
               }
           }
       ]
   }
   ```

------

1. 在源快照具有 Project=XYZ 标签且请求标签为 Service=Elasticache 时拒绝 `CopySnapshot` 操作。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "elasticache:CopySnapshot",
               "Resource": [
                   "arn:aws:elasticache:*:*:snapshot:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/Project": "XYZ",
                       "aws:RequestTag/Service": "Elasticache"
                   }
               }
           }
       ]
   }
   ```

------

1. 如果请求标签 `CreateCacheCluster` 丢失或不等于 `Project`、`Dev` 或 `QA`，则拒绝 `Prod` 操作。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
             {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*",
                   "arn:aws:elasticache:*:*:securitygroup:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ]
           },
           {
               "Effect": "Deny",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "Null": {
                       "aws:RequestTag/Project": "true"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:AddTagsToResource"
               ],
               "Resource": "arn:aws:elasticache:*:*:cluster:*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Project": [
                           "Dev",
                           "Prod",
                           "QA"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

有关条件键的相关信息，请参阅[使用条件键](IAM.ConditionKeys.md)。

# 使用成本分配标签监控成本
<a name="Tagging"></a>

当您在 Amazon 中为资源添加成本分配标签时 ElastiCache，您可以通过按资源标签值对发票上的费用进行分组来跟踪成本。

 ElastiCache 成本分配标签是您定义并与资源关联的键值对。 ElastiCache 键和值区分大小写。您可以使用标签键定义类别，而标签值作为该类别中的项目。例如，通过定义标签键 `CostCenter` 和标签值 `10010`，可以表示将资源分配给 10010 成本中心。再如，通过为标签使用 `Environment` 键和 `test` 或 `production` 值，可以将资源指定为测试或生产用途。我们建议您使用一组一致的标签键，从而方便跟踪与资源相关联的成本。

使用成本分配标签来整理AWS账单，以反映您自己的成本结构。为此，请注册以获取包含标签键值的AWS账户账单。然后，如需查看组合资源的成本，请按有同样标签键值的资源组织您的账单信息。例如，您可以将特定的应用程序名称用作几个资源的标签，然后组织账单信息，以查看在数个服务中的使用该应用程序的总成本。

您也可以合并标签以采用更高详细信息级别跟踪成本。例如，要按区域跟踪服务成本，可以使用标签键 `Service` 和 `Region`。这样，一个资源的值可以有 `ElastiCache` 和 `Asia Pacific (Singapore)` 值，另一个资源可以有 `ElastiCache` 和 `Europe (Frankfurt)` 值。然后，您可以看到按地区细分的总 ElastiCache 成本。有关更多信息，请参阅《AWS Billing用户指南》**中的[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

您可以向 ElastiCache 基于节点的集群添加 ElastiCache 成本分配标签。在您添加、列出、修改、复制或删除标签时，操作仅应用到指定的集群。

**ElastiCache 成本分配标签的特征**
+ 成本分配标签适用于在 CLI 和 API 操作中指定为 ARN 的 ElastiCache 资源。资源类型将是“cluster”。

  示例 ARN：`arn:aws:elasticache:<region>:<customer-id>:<resource-type>:<resource-name>`

  示例 arn：`arn:aws:elasticache:us-west-2:1234567890:cluster:my-cluster`
+ 标签键是标签的名称，属于必填内容。键的字符串值的长度可以在 1 到 128 个 Unicode 字符之间，并且不能带有前缀 `aws:`。字符串只能包含一组 Unicode 字母、数字、空格、下划线（\$1）、句点（.）、冒号（:）、斜杠（\$1）、等号（=）、加号（\$1）、连字符（-）或 @ 符号。

   
+ 标签值是标签的可选值。值的字符串值的长度可以在 1 到 256 个 Unicode 字符之间，并且不能带有前缀 `aws:`。字符串只能包含一组 Unicode 字母、数字、空格、下划线（\$1）、句点（.）、冒号（:）、斜杠（\$1）、等号（=）、加号（\$1）、连字符（-）或 @ 符号。

   
+ 一个 ElastiCache 资源最多可以有 50 个标签。

   
+ 在标签集中，值不必具有唯一性。例如，在您的标签集内，键 `Service` 和 `Application` 可同时具有值 `ElastiCache`。

AWS不会对您的标签应用任何语义含义。标签被严格解释为字符串。AWS不会自动为任何 ElastiCache 资源设置任何标签。

# 使用 AWS CLI 管理成本分配标签
<a name="Tagging.Managing.CLI"></a>

您可以使用 AWS CLI 添加、修改或删除成本分配标签。

成本分配标签应用于 ElastiCache 集群。要添加标签的集群是使用 ARN（Amazon 资源名称）指定的。

示例 arn：`arn:aws:elasticache:us-west-2: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 通过 [list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-tags-for-resource.html) 操作列出现有 ElastiCache 资源上的标签。

以下代码使用 AWS CLI 列出 us-west-2 区域中的 Memcached 集群 `my-cluster` 上的标签。

对于 Linux、macOS 或 Unix：

```
aws elasticache list-tags-for-resource \
  --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster
```

对于 Windows：

```
aws elasticache list-tags-for-resource ^
  --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster
```

以下代码使用 AWS CLI 列出 us-west-2 区域中 `my-cluster-001` 集群中的 Valkey 或 Redis OSS 节点上的标签。

对于 Linux、macOS 或 Unix：

```
aws elasticache list-tags-for-resource \
  --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001
```

对于 Windows：

```
aws elasticache list-tags-for-resource ^
  --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001
```

此操作的输出类似于下文，即列出资源上的所有标签。

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

如果资源上没有任何标签，则输出空标签列表。

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

有关更多信息，请参阅适用于 ElastiCache 的 AWS CLI ([list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/list-tags-for-resource.html))。

## 使用 AWS CLI 添加标签
<a name="Tagging.Managing.CLI.Add"></a>

您可以使用 AWS CLI 通过 [add-tags-to-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/add-tags-to-resource.html) CLI 操作向现有 ElastiCache 资源添加标签。如果资源上不存在标签键，则键和值将添加到资源。如果资源上已存在该键，则与该键关联的值将更新为新值。

下面的代码使用 AWS CLI 向 us-west-2 区域中集群 `my-cluster` 的节点 `my-cluster-001` 添加键 `Service` 和 `Region`，这两个键的值分别为 `elasticache` 和 `us-west-2`。

**Memcached**

对于 Linux、macOS 或 Unix：

```
aws elasticache add-tags-to-resource \
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster \
 --tags Key=Service,Value=elasticache \
        Key=Region,Value=us-west-2
```

对于 Windows：

```
aws elasticache add-tags-to-resource ^
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster ^
 --tags Key=Service,Value=elasticache ^
        Key=Region,Value=us-west-2
```

** Redis**

对于 Linux、macOS 或 Unix：

```
aws elasticache add-tags-to-resource \
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001 \
 --tags Key=Service,Value=elasticache \
        Key=Region,Value=us-west-2
```

对于 Windows：

```
aws elasticache add-tags-to-resource ^
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001 ^
 --tags Key=Service,Value=elasticache ^
        Key=Region,Value=us-west-2
```

此操作的输出将类似于下文，先列出资源上的所有标签，后面跟随操作。

```
{
   "TagList": [
      {
         "Value": "elasticache",
         "Key": "Service"
      },
      {
         "Value": "us-west-2",
         "Key": "Region"
      }
   ]
}
```

有关更多信息，请参阅适用于 ElastiCache 的 AWS CLI ([add-tags-to-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/add-tags-to-resource.html))。

还可以在创建新集群时使用 AWS CLI 向集群添加标签，方法是使用操作 [create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html)。使用 ElastiCache 管理控制台创建集群时，您不能添加标签。创建集群之后，随后可以使用控制台向集群添加标签。

## 使用 AWS CLI 修改标签
<a name="Tagging.Managing.CLI.Modify"></a>

您可以使用 AWS CLI 修改 ElastiCache 集群上的标签。

修改标签：
+ 使用 [add-tags-to-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/add-tags-to-resource.html) 可添加新标签和值，或更改与现有标签关联的值。
+ 使用 [remove-tags-from-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/remove-tags-from-resource.html) 删除资源的指定标签。

以上任意操作的输出将是指定集群上标签及其值的列表。

## 使用 AWS CLI 删除标签
<a name="Tagging.Managing.CLI.Remove"></a>

您可以使用 AWS CLI 通过 [remove-tags-from-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/remove-tags-from-resource.html) 操作删除现有 ElastiCache for Memcached 集群的标签。

对于 Memcached，下面的代码使用 AWS CLI 移除了 us-west-2 区域中集群 `my-cluster` 的节点 `my-cluster-001` 包含的键 `Service` 和 `Region` 的标签。

对于 Linux、macOS 或 Unix：

```
aws elasticache remove-tags-from-resource \
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster \
 --tag-keys PM Service
```

对于 Windows：

```
aws elasticache remove-tags-from-resource ^
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster ^
 --tag-keys PM Service
```

对于 Redis OSS，下面的代码使用 AWS CLI 移除了 us-west-2 区域中集群 `my-cluster` 的节点 `my-cluster-001` 包含的键 `Service` 和 `Region` 的标签。

对于 Linux、macOS 或 Unix：

```
aws elasticache remove-tags-from-resource \
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001 \
 --tag-keys PM Service
```

对于 Windows：

```
aws elasticache remove-tags-from-resource ^
 --resource-name arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001 ^
 --tag-keys PM Service
```

此操作的输出将类似于下文，先列出资源上的所有标签，后面跟随操作。

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

有关更多信息，请参阅适用于 ElastiCache 的 AWS CLI ([remove-tags-from-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticache/remove-tags-from-resource.html))。

# 使用 ElastiCache API 管理成本分配标签
<a name="Tagging.Managing.API"></a>

您可以使用 ElastiCache API 添加、修改或删除成本分配标签。

成本分配标签应用到 ElastiCache for Memcached 集群。要添加标签的集群是使用 ARN（Amazon 资源名称）指定的。

示例 arn：`arn:aws:elasticache:us-west-2:1234567890:cluster:my-cluster`

**Topics**
+ [使用 ElastiCache API 列出标签](#Tagging.Managing.API.List)
+ [使用 ElastiCache API 添加标签](#Tagging.Managing.API.Add)
+ [使用 ElastiCache API 修改标签](#Tagging.Managing.API.Modify)
+ [使用 ElastiCache API 删除标签](#Tagging.Managing.API.Remove)

## 使用 ElastiCache API 列出标签
<a name="Tagging.Managing.API.List"></a>

您可以使用 ElastiCache API 通过 [ListTagsForResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ListTagsForResource.html) 操作列出现有资源上的标签。

对于 Memcached，以下代码使用 ElastiCache API 列出 us-west-2 区域中 `my-cluster` 资源上的标签。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ListTagsForResource
   &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Version=2015-02-02
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

对于 Redis OSS，以下代码使用 ElastiCache API 列出 us-west-2 区域中 `my-cluster-001` 资源上的标签。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=ListTagsForResource
   &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Version=2015-02-02
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

## 使用 ElastiCache API 添加标签
<a name="Tagging.Managing.API.Add"></a>

您可以使用 ElastiCache API 通过 [AddTagsToResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html) 操作向现有 ElastiCache 集群添加标签。如果资源上不存在标签键，则键和值将添加到资源。如果资源上已存在该键，则与该键关联的值将更新为新值。

以下代码使用 ElastiCache API 添加键 `Service` 和 `Region`，其值分别为 `elasticache` 和 `us-west-2`。对于 Memcached，这将应用于资源 `my-cluster`。对于 Redis OSS，这将应用于 us-west-2 区域中的资源 `my-cluster-001`。

**Memcached**

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=AddTagsToResource
   &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Tags.member.1.Key=Service 
   &Tags.member.1.Value=elasticache
   &Tags.member.2.Key=Region
   &Tags.member.2.Value=us-west-2
   &Version=2015-02-02
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

** Redis**

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=AddTagsToResource
   &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Tags.member.1.Key=Service 
   &Tags.member.1.Value=elasticache
   &Tags.member.2.Key=Region
   &Tags.member.2.Value=us-west-2
   &Version=2015-02-02
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

有关更多信息，请参阅 *Amazon ElastiCache API 参考*中的 [AddTagsToResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html)。

## 使用 ElastiCache API 修改标签
<a name="Tagging.Managing.API.Modify"></a>

您可以使用 ElastiCache API 修改 ElastiCache 集群上的标签。

修改标签的值：
+ 使用 [AddTagsToResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_AddTagsToResource.html) 操作可添加新标签和值，或更改现有标签的值。
+ 使用 [RemoveTagsFromResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html) 可删除资源的标签。

以上任意操作的输出将是指定资源上标签及其值的列表。

使用 [RemoveTagsFromResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html) 可删除资源的标签。

## 使用 ElastiCache API 删除标签
<a name="Tagging.Managing.API.Remove"></a>

您可以使用 ElastiCache API 通过 [RemoveTagsFromResource](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_RemoveTagsFromResource.html) 操作删除现有 ElastiCache for Memcached 集群的标签。

以下代码使用 ElastiCache API 从 us-west-2 区域中集群 `my-cluster` 中的节点 `my-cluster-001` 上删除具有键 `Service` 和 `Region` 的标签。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=RemoveTagsFromResource
   &ResourceName=arn:aws:elasticache:us-west-2:0123456789:cluster:my-cluster-001
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &TagKeys.member.1=Service
   &TagKeys.member.2=Region
   &Version=2015-02-02
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```