Amazon ECS
AWS Fargate 用户指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

标记您的 Amazon ECS 资源

为了方便管理您的 Amazon ECS 任务、服务、任务定义、集群和容器实例,您可以选择通过标签 的形式向每个资源分配您自己的元数据。本主题介绍标签并说明如何创建标签。

重要

要使用此功能,需要您选择使用新 Amazon 资源名称 (ARN) 和资源标识符 (ID) 格式。有关更多信息,请参阅 Amazon 资源名称 (ARN) 和 ID

有关标签的基本知识

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

标签可让您按各种标准(例如用途、所有者或环境)对 AWS 资源进行分类。这在您具有相同类型的许多资源时会很有用 — 您可以根据分配给资源的标签快速识别特定资源。例如,您可以为账户的 Amazon ECS 容器实例定义一组标签,以帮助您跟踪每个容器实例的所有者和堆栈级别。

我们建议您针对每类资源设计一组标签,以满足您的需要。使用一组连续的标签键,管理资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。

标签对 Amazon ECS 没有任何语义意义,应严格按字符串进行解析。同时,标签不会自动分配至您的资源。您可以修改标签的密钥和值,还可以随时删除资源的标签。您可以将标签的值设为空的字符串,但是不能将其设为空值。如果您添加的标签的值与该实例上现有标签的值相同,新的值就会覆盖旧值。如果删除资源,资源的所有标签也会被删除。

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

如果您使用的是 AWS Identity and Access Management (IAM),则可以控制 AWS 账户中的哪些用户拥有创建、编辑或删除标签的权限。

标记您的资源

您可以标记新的或现有的 Amazon ECS 任务、服务、任务定义和集群。

如果您使用的是 Amazon ECS 控制台,则可以在创建新资源时对其应用标签,或随时在相关资源页面上使用 Tags (标签) 选项卡对现有资源应用标签。Propagate tags from (传播以下来源的标签) 选项可在运行任务以将标签从任务定义复制到任务或在创建服务以将标签从服务或任务定义复制到服务中的任务时使用。

如果您使用的是 Amazon ECS API、AWS CLI 或 AWS 开发工具包,则可以使用相关 API 操作上的 tags 参数对新资源应用标签,或使用 TagResource API 操作对现有资源应用标签。有关更多信息,请参阅 TagResourcepropagateTags 参数可在运行任务以将标签从任务定义复制到任务或在创建服务以将标签从服务或任务定义复制到服务中的任务时使用。有关更多信息,请参阅 RunTaskCreateService

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

下表描述了可以标记的 Amazon ECS 资源以及可在创建时标记的资源。

Amazon ECS 资源标记支持

资源

支持标签

支持标签传播

支持在创建时标记(Amazon ECS API、AWS CLI、AWS 开发工具包)

Amazon ECS 任务

是,从任务定义。

Amazon ECS 服务

是,从任务定义或服务到服务中的任务。

Amazon ECS 任务定义

Amazon ECS 集群

标签限制

下面是适用于标签的基本限制:

  • 每个资源的最大标签数 – 50

  • 对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。

  • 最大键长度 – 128 个 Unicode 字符(采用 UTF-8 格式)

  • 最大值长度 – 256 个 Unicode 字符(采用 UTF-8 格式)

  • 如果您的标记方案针对多个服务和资源使用,请记得其他服务可能对允许使用的字符有限制。通常允许使用的字符包括:可用 UTF-8 格式表示的字母、数字和空格,以及以下字符:+ - = . _ : / @。

  • 标签键和值区分大小写。

  • 请不要使用 aws:AWS: 或任何大写或小写组合(例如,键或值的前缀),因为它将保留以供 AWS 使用。您无法编辑或删除带此前缀的标签键或值。具有此前缀的标签不计入每个资源的标签数限制。

标记资源以便于计费

在启用 Amazon ECS 托管标签后,Amazon ECS 将自动使用集群名称标记所有新启动的任务。对于属于服务的任务,还将使用服务名称标记它们。在成本和使用率报告中启用这些托管标签后,在查看成本分配时这些托管标签非常有帮助。有关更多信息,请参阅Amazon ECS 使用率报告

如需查看组合资源的成本,请按具有相同标签键值的资源组织您的账单信息。例如,您可以将特定的应用程序名称用作几个资源的标签,然后组织账单信息,以查看在数个服务中的使用该应用程序的总成本。有关使用标签设置成本分配报告的更多信息,请参阅 AWS Billing and Cost Management 用户指南 中的月度成本分配报告

重要

要使用此功能,需要您选择使用新 Amazon 资源名称 (ARN) 和资源标识符 (ID) 格式。有关更多信息,请参阅 Amazon 资源名称 (ARN) 和 ID

注意

如果您已启用报告,则可以在 24 小时后查看当月的数据。

通过控制台使用标签

使用 Amazon ECS 控制台,您可以管理与新的或现有的任务、服务、任务定义、集群或容器实例相关的标签。

当您在 Amazon ECS 控制台中选择特定资源页面时,它会显示这些资源列表。例如,如果您从导航窗格中选择 Clusters (集群),则控制台会显示 Amazon ECS 集群列表。当您从其中一个列表中选择一种资源时(例如,特定集群),如果该资源支持标签,则您可以在 Tags (标签) 选项卡上查看和管理其标签。

在启动过程中为单个资源添加标签

以下资源允许您在创建该资源时指定标签。

任务

控制台

运行一个或多个任务。

正在运行的任务

创建服务。

创建服务

注册任务定义。

创建任务定义

创建集群。

创建集群

为单个资源添加和删除标签

Amazon ECS 允许您直接从资源的页面中添加或删除与集群、服务、任务和任务定义相关的标签。

向单个资源添加标签

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择资源类型(例如,Clusters (集群))。

  4. 从资源列表中选择资源,然后依次选择 Tags (标签)Edit (编辑)

  5. Edit Tags (编辑标签) 对话框中,为每个标签指定键和值,然后选择 Save (保存)

删除单个资源的标签

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择资源类型(例如,Clusters (集群))。

  4. 从资源列表中选择资源,然后依次选择 Tags (标签)Edit (编辑)

  5. Edit Tags (编辑标签) 页面上,选择要删除的每个标签对应的 Delete (删除) 图标,然后选择 Save (保存)

通过 CLI 或 API 使用标签

使用以下命令添加、更新、列出和删除资源标签。相应文档提供了示例。

Amazon ECS 资源标记支持

任务

AWS CLI

API 操作

添加或覆盖一个或多个标签。

tag-resource

TagResource

删除一个或多个标签。

untag-resource

UntagResource

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

示例 1:标记现有集群

以下命令标记现有集群。

aws ecs tag-resource --resource-arn resource_ARN --tags key=stack,value=dev

示例 2:取消标记现有集群

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

aws ecs untag-resource --resource-arn resource_ARN --tag-keys tag_key

示例 3:列出资源的标签

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

aws ecs list-tags-for-resource --resource-arn resource_ARN

某些资源创建操作允许您在创建资源时指定标签。以下操作支持在创建时进行标记。

任务

AWS CLI

适用于 Windows PowerShell 的 AWS 工具

API 操作

运行一个或多个任务。

run-task

Start-ECSTask

RunTask

创建服务。

create-service

New-ECSService

CreateService

注册任务定义。

register-task-definition

Register-ECSTaskDefinition

RegisterTaskDefinition

创建集群。

create-cluster

New-ECSCluster

CreateCluster

以下示例说明如何在创建资源时应用标签。

示例 1:创建集群并应用标签

以下命令创建一个名为 devcluster 的集群并添加键为 team 且值为 devs 的标签。

aws ecs create-cluster --cluster-name devcluster --tags key=team,value=devs

示例 2:创建服务并应用标签

以下命令创建一个名为 application 的服务并添加键为 stack 且值为 dev 的标签。

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev

示例 3:创建带标签的服务并将标签传播到服务中的任务。

--propagateTags 参数可用于将标签从任务定义或服务复制到服务中的任务。以下命令创建具有标签的服务并将标签传播到该服务中的任务。

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev --propagateTags Service