本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Proton 资源和标记
分配了 Amazon 资源名称 (ARN) 的 AWS Proton 资源包括环境模板及其主要和次要版本、服务模板及其主要和次要版本、环境、服务、服务实例、组件和存储库。您可以标记这些资源以帮助组织和识别它们。您可使用标签,按用途、所有者、环境或其他标准对资源进行分类。有关更多信息,请参阅 标记策略
AWS 标记
可以将自己的元数据以标签形式分配给 AWS 资源。每个标签包含客户定义的键和可选的值。标签可帮助您管理、识别、组织、搜索和筛选资源。
重要
请勿在标签中添加个人身份信息(PII)或其他机密或敏感信息。标签可供许多 AWS 服务 访问,包括计费。标签不适合用于私有或敏感数据。
每个 标签具有两个部分。
-
标签键(例如,
CostCenter
、Environment
或Project
)。标签键区分大小写。 -
标签值(可选)(例如
111122223333
或Production
)。与标签键一样,标签值区分大小写。
以下基本命名和用法要求适用于标签。
-
每个资源最多可以有 50 个用户创建的标签。
注意
以
aws:
前缀开头的系统创建标签是为 AWS 使用而保留的,并且不计入该限制。您无法编辑或删除以aws:
前缀开头的标签。 -
对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。
-
标签键必须包含 1 到 128 个 Unicode 字符,并且以 UTF-8 格式表示。
-
标签值必须最少为 1 个 Unicode 字符,最多为 256 个 Unicode 字符,采用 UTF-8 格式。
-
允许在标签中使用的字符包括以 UTF-8 表示的字母、数字和空格以及以下字符:* _ . : / = + - @。
AWS Proton 标记
对于 AWS Proton,可以使用您创建的标签以及 AWS Proton 自动为您生成的标签。
AWS Proton AWS 托管标签
在您创建 AWS Proton 资源时,AWS Proton 自动为新资源生成 AWS 托管标签,如下图所示。AWS 托管标签稍后传播到基于新资源的其他 AWS Proton 资源。例如,环境模板中的托管标签传播到其版本,服务中的托管标签传播到其服务实例。
注意
不会 为环境账户连接生成 AWS 托管标签。有关更多信息,请参阅环境账户连接。
标签传播到预置的资源
如果预置的资源(例如服务和环境模板中定义的资源)支持 AWS 标记,AWS 托管标签将作为客户托管标签传播到预置的资源。这些标签不会传播到不支持 AWS 标记的预置资源。
AWS Proton 按 AWS Proton 账户、注册的模板和部署的环境以及服务和服务实例将标签应用于您的资源,如下表中所述。您可以使用 AWS 托管标签查看和管理您的 AWS Proton 资源,但无法修改这些资源。
AWS 托管标签键 | 传播的客户托管键 | 说明 |
---|---|---|
|
|
创建和部署 AWS Proton 资源的 AWS 账户。 |
|
|
选定的模板的 ARN。 |
|
|
选定的环境的 ARN。 |
|
|
选定的服务的 ARN。 |
|
|
选定的服务实例的 ARN。 |
|
|
选定的组件的 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 托管式预置,AWS Proton 将传播的标签直接应用于预置的资源。
对于自托管式预置,AWS Proton 将传播的标签与它在预置拉取请求 (PR) 中提交的渲染 IaC 文件一起提供。标签是在字符串映射变量 proton_tags
中提供的。我们建议您在 Terraform 配置中引用该变量,以在 default_tags
中包含 AWS Proton 标签。这会将 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"
}
}
以下是如何将 AWS Proton 标签添加到 Terraform 配置中,以便将它们添加到预置的资源中:
# Configure the AWS Provider provider "aws" { region = var.aws_region
default_tags { tags = var.proton_tags }
}
客户托管标签
每个 AWS Proton 资源的最大配额为 50 个客户托管标签。客户托管标签传播到子 AWS Proton 资源的方式与 AWS 托管标签相同,但它们不会传播到现有的 AWS Proton 资源或预置的资源。如果您将新标签应用于具有现有子资源的 AWS Proton 资源,并且希望使用新标签标记现有的子资源,则需要使用控制台或 AWS CLI 手动标记每个现有的子资源。
使用控制台和 CLI 创建标签
在您使用控制台创建 AWS Proton 资源时,您有机会在创建过程的第一页或第二页上创建客户托管标签,如以下控制台快照中所示。选择添加新标签,输入键和值并继续。
在使用 AWS Proton 控制台创建新资源后,您可以从详细信息页面中查看它的 AWS 托管标签和客户托管标签列表。
创建或编辑标签
-
在 AWS Proton 控制台
中,打开 AWS Proton 资源详细信息页面,您可以在其中看到标签列表。 -
选择管理标签。
-
在管理标签页面中,您可以查看、创建、删除和编辑标签。您无法修改顶部列出的 AWS 托管标签。不过,您可以使用编辑字段添加和修改客户托管标签,这些字段在 AWS 托管标签后面列出。
选择添加新标签以创建新标签。
-
输入新标签的键和值。
-
要编辑标签,请在选定键的标签值字段中输入一个值。
-
要删除标签,请为选定的标签选择删除。
-
在完成更改后,选择保存更改。
使用 AWS Proton AWS CLI 创建标签
您可以使用 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
"