AWS Proton 资源和标记 - AWS Proton

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

AWS Proton 资源和标记

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

AWS 标记

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

重要

请勿在标签中添加个人身份信息(PII)或其他机密或敏感信息。标签可供许多 AWS 服务访问,包括计费。标签不适合用于私有或敏感数据。

每个 标签具有两个部分。
  • 标签键(例如,CostCenterEnvironmentProject)。标签键区分大小写。

  • 标签值(可选)(例如 111122223333Production)。与标签键一样,标签值区分大小写。

以下基本命名和用法要求适用于标签。
  • 每个资源最多可以有 50 个用户创建的标签。

    注意

    系统创建的以aws:前缀开头的标签仅供 AWS 使用,不计入此限制。您无法编辑或删除以 aws: 前缀开头的标签。

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

  • 标签键必须包含 1 到 128 个 Unicode 字符,并且以 UTF-8 格式表示。

  • 标签值必须最少为 1 个 Unicode 字符,最多为 256 个 Unicode 字符,采用 UTF-8 格式。

  • 允许在标签中使用的字符包括以 UTF-8 表示的字母、数字和空格以及以下字符:* _ . : / = + - @。

AWS Proton 标记

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

AWS ProtonAWS 托管标签

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

注意

AWS 不会为环境账户连接生成托管标签。有关更多信息,请参阅 环境账户连接

描述 AWS 托管标签传播的示意图。

标签传播到预置的资源

如果已配置的资源(例如服务和环境模板中定义的资源)支持 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托管配置,将传播的标签直接 AWS Proton 应用于已配置的资源。

使用自我管理配置, 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 } }

客户托管标签

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

使用控制台和 CLI 创建标签

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

控制台创建标签界面的快照。

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

创建或编辑标签
  1. AWS Proton 控制台中,打开 AWS Proton 资源详细信息页面,您可以在其中看到标签列表。

  2. 选择管理标签

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

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

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

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

  6. 要删除标签,请为选定的标签选择删除

  7. 在完成更改后,选择保存更改

使用创建标签 AWS ProtonAWS 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"