

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

# 为您的 Amazon EMR on EKS 资源添加标签
<a name="tag-resources"></a>

为了帮助您管理 Amazon EMR on EKS 资源，您可使用标签为每个资源分配您自己的元数据。本主题概览了标签功能，并说明如何创建标签。

**Topics**
+ [标签基本知识](#tag-resources-tag-basics)
+ [标记资源](#tag-resources-add-tags)
+ [标签限制](#tag-resources-restrictions)
+ [使用标签 AWS CLI 和在 EKS API 上使用亚马逊 EMR](#tag-resources-work-with-tags)

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

标签是您分配给 AWS 资源的标签。每个标签都包含定义的一个键和一个可选值。

标签使您能够按用途、所有者或环境等属性对 AWS 资源进行分类。在具有相同类型的许多资源时，可以根据分配给资源的标签快速识别具体的资源。例如，您可以为 Amazon EMR on EKS 集群定义一组标签，以帮助您跟踪每个集群的拥有者和堆栈级别。我们建议为每个资源类型设计一组一致的标签键。然后，您可以根据添加的标签搜索和筛选资源。

标签不会自动分配至资源。添加标签后，可以编辑标签键和值，还可以随时删除资源的标签。如果您删除资源，则该资源的所有标签也会被删除。

标签对 Amazon EMR on EKS 没有任何语义意义，应严格按字符串进行解析。

标签值可以是空字符串，但是不能是 null。标签的键不能是空字符串。如果您添加的标签的键与该资源上现有标签的键相同，则新值会覆盖旧值。

如果您使用 AWS Identity and Access Management (IAM)，则可以控制 AWS 账户中哪些用户有权管理标签。

有关基于标签的访问策略示例，请参阅[基于标签的访问控制策略](security_iam_TBAC.md)。

## 标记资源
<a name="tag-resources-add-tags"></a>

您可以标记新的或现有的虚拟集群，以及处于活动状态的任务运行。任务运行的活动状态包括：`PENDING`、`SUBMITTED`、`RUNNING` 和 `CANCEL_PENDING`。虚拟集群的活动状态包括：`RUNNING`、`TERMINATING` 和 `ARRESTED`。有关更多信息，请参阅[任务运行状态](emr-eks-jobs-states.md)和[虚拟集群状态](virtual-cluster.md#virtual-cluster-states)。

当虚拟集群终止时，将清除标签并且不再可访问。

如果您使用的是 EKS 上的 Amazon EMR API AWS CLI、或 AWS 软件开发工具包，则可以使用相关 API 操作中的标签参数将标签应用于新资源。您也可以通过使用 `TagResource` API 操作将标签应用于现有资源。

您可使用某些创建资源操作，以在创建资源时为其指定标签。在这种情况下，如果在创建资源期间无法应用标签，则无法创建资源。此机制可确保对于您希望在创建时标记的资源，要么使用指定的标签创建，要么完全不创建。如果您在创建时标记资源，则无需在创建资源后运行自定义标记脚本。

下表描述了可以标记的 Amazon EMR on EKS 资源。


****  

| 资源 | 支持标签 | 支持标签传播 | 支持在创建时添加标签（EKS API AWS CLI和 SDK 上的 Amazon EMR） AWS  | 创建 API（可以在创建过程中添加标签） | 
| --- | --- | --- | --- | --- | 
| 虚拟集群 | 是 | 否。与虚拟集群关联的标签不会传播到提交给该虚拟集群的任务运行。 | 是 | CreateVirtualCluster | 
| 任务运行 | 是 | 否 | 是 | StartJobRun | 

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

下面是适用于标签的基本限制：
+ 每个资源的标签数上限：50
+ 对于每个资源，每个标签键都必须是唯一的，每个标签键只能有一个值。
+ 最大键长度：128 个 Unicode 字符（采用 UTF-8 格式）
+ 最大值长度：256 个 Unicode 字符 (采用 UTF-8 格式)
+ 如果您的标记架构用于多个 AWS 服务和资源，请记住，其他服务可能对允许的字符有限制。通常允许使用的字符包括可用 UTF-8 格式表示的字母、数字和空格，以及以下字符：\$1 - = . \$1 : / @。
+ 标签键和值区分大小写。
+ 标签值可以是空字符串，但是不能是 null。标签的键不能是空字符串。
+ 请不要使用 `aws:`、`AWS:` 或任何大写或小写组合（例如，键或值的前缀）。这些仅供 AWS 使用。

## 使用标签 AWS CLI 和在 EKS API 上使用亚马逊 EMR
<a name="tag-resources-work-with-tags"></a>

使用以下 AWS CLI 命令或 EKS API 操作上的 Amazon EMR 来添加、更新、列出和删除资源的标签。


****  

| Task | AWS CLI | API 操作 | 
| --- | --- | --- | 
| 添加或覆盖一个或多个标签 | [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/emr-containers/tag-resource.html) | [TagResource](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_TagResource.html) | 
| 列出资源的标签 | [list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/emr-containers/list-tags-for-resource.html) | [ListTagsForResource](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_ListTagsForResource.html) | 
| 删除一个或多个标签 | [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/emr-containers/untag-resource.html) | [UntagResource](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_UntagResource.html) | 

以下示例说明如何使用 AWS CLI给资源加标签或取消标签。

**示例 1：标记现有虚拟集群**

以下命令标记现有虚拟集群。

```
aws emr-containers tag-resource --resource-arn resource_ARN --tags team=devs
```

**示例 2：取消标记现有虚拟集群**

以下命令从现有虚拟集群删除标签。

```
aws emr-containers untag-resource --resource-arn resource_ARN --tag-keys tag_key
```

**示例 3：列出资源的标签**

以下命令列出与现有资源关联的标签。

```
aws emr-containers list-tags-for-resource --resource-arn resource_ARN
```