

终止支持通知：2026 年 10 月 7 日， AWS 将终止对的支持。 AWS Proton 2026 年 10 月 7 日之后，您将无法再访问 AWS Proton 控制台或 AWS Proton 资源。您部署的基础架构将保持不变。有关更多信息，请参阅《[AWS Proton 服务弃用和迁移指南》](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

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

# AWS Proton 资源和标记
<a name="resources"></a>

AWS Proton 分配了 Amazon 资源名称 (ARN) 的资源包括环境模板及其主要版本和次要版本、服务模板及其主要版本和次要版本、环境、服务、服务实例、组件和存储库。您可以标记这些资源以帮助组织和识别它们。您可以使用标签按用途、所有者、环境或其他标准对资源进行分类。有关更多信息，请参阅 [ 标记策略](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/)。要跟踪和管理您的 AWS Proton 资源，您可以使用以下几节中所述的标记功能。

## AWS 标记
<a name="aws-tags"></a>

您可以以标签的形式为 AWS 资源分配元数据。每个标签包含客户定义的键和可选的值。标签有助于您管理、识别、组织、搜索和筛选资源。

**重要**  
请勿在标签中添加个人身份信息（PII）或其他机密或敏感信息。标签可供许多 AWS 服务访问，包括计费。标签不适用于私密数据或敏感数据。

**每个 标签具有两个部分。**
+ 标签键（例如，`CostCenter`、`Environment` 或 `Project`）。标签键区分大小写。
+ 标签值（可选）（例如 `111122223333` 或 `Production`）。与标签键一样，标签值区分大小写。

**以下基本命名和用法要求适用于标签。**
+ 每个资源最多可以有 50 个用户创建的标签。
**注意**  
系统创建的以`aws:`前缀开头的标签仅供 AWS 使用，不计入此限制。您无法编辑或删除以 `aws:` 前缀开头的标签。
+ 对于每个资源，每个标签键必须是唯一的，并且每个标签键只能有一个值。
+ 在 UTF-8 中，标签密钥必须至少为 1，最多 128 个 Unicode 字符。
+ 标签值必须最少为 1 个 Unicode 字符，最多为 256 个 Unicode 字符，采用 UTF-8 格式。
+ 允许在标签中使用的字符包括以 UTF-8 表示的字母、数字和空格以及以下字符：\$1 \$1 . : / = \$1 - @。

## AWS Proton 标记
<a name="proton-tags"></a>

使用 AWS Proton，既可以使用自己创建的标签，也可以使用 AWS Proton 自动为您生成的标签。

### AWS Proton AWS 托管标签
<a name="auto-tags"></a>

创建 AWS Proton 资源时，会 AWS Proton 自动为新资源生成 AWS 托管标签，如下图所示。 AWS 托管标签稍后会传播到基于您的新 AWS Proton 资源的其他资源。例如，环境模板中的托管标签传播到其版本，服务中的托管标签传播到其服务实例。

**注意**  
AWS *不会*为环境账户连接生成托管标签。有关更多信息，请参阅 [环境账户连接](ag-env-account-connections.md)。

![\[描述 AWS 托管标签传播的示意图。\]](http://docs.aws.amazon.com/zh_cn/proton/latest/userguide/images/tag-diag.png)


### 标签传播到预置的资源
<a name="auto-tags-prop"></a>

如果已配置的资源（例如服务和环境模板中定义的资源）支持 AWS 标记，则托管标签将作为客户 AWS 托管标签传播到已配置的资源。这些标签不会传播到不支持 AWS 标记的已配置资源。

AWS Proton 按 AWS Proton 账户、注册模板和部署的环境以及服务和服务实例将标签应用于您的资源，如下表所述。您可以使用 AWS 托管标签来查看和管理您的 AWS Proton 资源，但不能对其进行修改。


| AWS 托管标签密钥 | 传播的客户托管键 | 描述 | 
| --- | --- | --- | 
|  `aws:proton:account`  |  `proton:account`  |  创建和部署 AWS Proton 资源的 AWS 账户。  | 
|  `aws:proton:template`  |  `proton:template`  |  选定的模板的 ARN。  | 
|  `aws:proton:environment`  |  `proton:environment`  |  选定的环境的 ARN。  | 
|  `aws:proton:service`  |  `proton:service`  |  选定的服务的 ARN。  | 
|  `aws:proton:service-instance`  |  `proton:service-instance`  |  选定的服务实例的 ARN。  | 
|  `aws:proton:component`  |  `proton:component`  |  选定的组件的 ARN。  | 

以下是 AWS Proton 资源的 AWS 托管标签示例。

```
"aws:proton:template" = "arn:aws:proton:region-id:account-id:environment-template/env-template"
```

以下是应用于从托管标签传播的已配置资源的客户 AWS 托管标签的示例。

```
"proton:environment:database" = "arn:aws:proton:region-id:account-id:rds/env-db"
```

使用[AWS托管配置](ag-works-prov-methods.md#ag-works-prov-methods-direct)，将传播的标签直接 AWS Proton 应用于已配置的资源。

使用[自我管理配置](ag-works-prov-methods.md#ag-works-prov-methods-self)， AWS Proton 使传播的标签与其在配置拉取请求 (PR) 中提交的呈现的 IaC 文件一起可用。标签是在字符串映射变量 `proton_tags` 中提供的。我们建议您在 Terraform 配置中引用此变量，以便在中包含 AWS Proton 标签。`default_tags`这会将 AWS Proton 标签传播到所有预置的资源。

以下示例说明了环境 Terraform 模板中的这种标签传播方法。

以下是 `proton_tags` 变量定义：

**proton.environment.variables.tf：**

```
variable "environment" {
  type = object({
    inputs = map(string)
    name = string
  })
}

variable "proton_tags" {
  type = map(string)
  default = null
}
```

以下是如何将标签值分配给该变量：

**proton.auto.tfvars.json：**

```
{
  "environment": {
    "name": "dev",
    "inputs": {
      "ssm_parameter_value": "MyNewParamValue"
    }
  }

  "proton_tags" : {
    "proton:account" : "123456789012",
    "proton:template" : "arn:aws:proton:us-east-1:123456789012:environment-template/fargate-env",
    "proton:environment" : "arn:aws:proton:us-east-1:123456789012:environment/dev"
  }
}
```

以下是如何在 Terraform 配置中添加 AWS Proton 标签，以便将其添加到已配置的资源中：

```
# Configure the AWS Provider
provider "aws" {
  region = var.aws_region
  default_tags {
    tags = var.proton_tags
  }
}
```

### 客户托管标签
<a name="user-tags"></a>

每个 AWS Proton 资源的最大配额为 50 个客户管理的标签。客户托管标签传播到子 AWS Proton 资源的方式与 AWS 托管标签相同，唯一的不同是它们不会传播到现有 AWS Proton 资源或预配置资源。如果您对包含现有子资源的 AWS Proton 资源应用新标签，并且希望使用新标签标记现有子资源，则需要使用控制台或手动标记每个现有子资源 AWS CLI。

### 使用控制台和 CLI 创建标签
<a name="console-tags"></a>

使用控制台创建 AWS Proton 资源时，您有机会在创建过程的第一页或第二页上创建客户托管标签，如以下控制台快照所示。选择**添加新标签**，输入键和值并继续。

![\[控制台创建标签界面的快照。\]](http://docs.aws.amazon.com/zh_cn/proton/latest/userguide/images/tag-create.PNG)


使用 AWS Proton 控制台创建新资源后，您可以从详情页面查看其 AWS 托管标签和客户托管标签列表。

**创建或编辑标签**

1. 在[AWS Proton 控制台](https://console.aws.amazon.com//proton/)中，打开 AWS Proton 资源详细信息页面，您可以在其中看到标签列表。

1. 选择**管理标签**。

1. 在**管理标签**页面中，您可以查看、创建、删除和编辑标签。您无法修改顶部列出的 AWS 托管标签。但是，您可以使用托管标签后面列出的编辑字段来添加和修改客户 AWS 管理的标签。

   选择**添加新标签**以创建新标签。

1. 输入新标签的键和值。

1. 要编辑标签，请在选定键的标签值字段中输入一个值。

1. 要删除标签，请为选定的标签选择**删除**。

1. 在完成更改后，选择**保存更改**。

### 使用创建标签 AWS Proton AWS CLI
<a name="cli-tags"></a>

您可以使用查看、创建、移除和编辑标签 AWS Proton AWS CLI。

您可以创建或编辑资源的标签，如以下示例中所示。

```
$ aws proton tag-resource \
    --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice" \
    --tags '[{"key":"mykey1","value":"myval1"},{"key":"mykey2","value":"myval2"}]'
```

您可以删除资源的标签，如以下示例中所示。

```
$ aws proton untag-resource \
    --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice" \
    --tag-keys '["mykey1","mykey2"]'
```

您可以列出资源的标签，如最后一个示例中所示。

```
$ aws proton list-tags-for-resource \
    --resource-arn "arn:aws:proton:region-id:account-id:service-template/webservice"
```