为 Cloud Workstations 资源添加标签

本页介绍了如何将标签与 Cloud Workstations 资源搭配使用。

什么是标签?

标签是一种键值对,可分配给 Google Cloud 实例。它们可以帮助您按照所需的粒度大规模组织这些资源并管理费用。您可以将标签附加到各项资源,然后根据其标签对资源进行过滤。标签的相关信息会转发到结算系统,以便您按标签细分结算费用。使用内置的结算报告,您可以按资源标签对费用进行过滤和分组。您还可以使用标签查询结算数据导出

标签要求

应用于资源的标签必须符合以下要求:

  • 每个资源最多可以有 64 个标签。
  • 每个标签都必须采用键值对形式。
  • 键至少包含 1 个字符,最多包含 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
  • 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。 键必须以小写字母或国际字符开头。
  • 标签的键部分在单个资源内必须是唯一的。不过,您可以将同一个键用于多个资源。

这些限制适用于每个标签的键和值,以及带有标签的各个 Google Cloud 资源。您可以对一个项目的所有资源应用任意数量的标签。

标签的常见用途

以下是标签的一些常见使用场景:

  • 团队或成本中心标签:根据团队或成本中心添加标签,以区分不同团队所拥有的实例(例如 team:researchteam:analytics)。您可以在核算成本或制定预算时使用此类标签。

  • 组件标签:例如 component:rediscomponent:frontendcomponent:ingestcomponent:dashboard

  • 环境或阶段标签:例如 environment:productionenvironment:test

  • 状态标签:例如 state:activestate:readytodeletestate:archive

  • 所有权标签:用于标识负责运营的团队,例如:team:shopping-cart

+ 虚拟机标签:标签可以是 挂接到虚拟机您在过去定义的虚拟机标记显示为没有值的标签。

我们不建议创建大量唯一标签,例如为每个 API 调用的时间戳或个别值创建标签。这种方法的问题在于,当值经常变化或键导致目录杂乱时,很难有效地过滤和报告资源。

标签和标记

标签可用作资源可查询的注释,但不能用于设置政策的条件。通过对政策进行精细控制,标记提供了一种有条件地允许或拒绝政策的方法,具体取决于资源是否具有特定的标记。如需了解详情,请参阅标记概览

如需详细了解 Google Cloud 标签,请参阅使用 标签

Cloud Workstations 资源标签

Cloud Workstations 会自动将以下标签应用于所有资源:

  • workstation_cluster_id
  • workstation_config_id
  • workstation_id
  • workstation_location
  • goog-drz-workstation-location
  • goog-drz-workstation-uuid
  • goog-workstations

自定义 Cloud Workstations 标签

您还可以向工作站集群、工作站配置和工作站添加自定义标签,系统会递归地将这些标签应用于所有底层 Compute Engine 资源,但不会应用于底层 Cloud Workstations API 资源。要为 Compute Engine 资源添加标签,请执行以下操作: 各个工作站,请务必为每个工作站添加标签。

调用labels Cloud Workstations API

例如,在后面的 config.json 示例文件中,webserver 是一个键 backend 是相应的值。同样,media 也是一个键, images 是相应的值。

    {
      "idleTimeout": "7200s",
      "host": {
        "gce_instance": {
          "machine_type": "e2-standard-8",
          "pool_size": 1
        }
      },
      "persistentDirectories": [
        {
        "mountPath": "/home",
        "gcePd": {
          "sizeGb": 200,
          "fsType": "ext4"
        }
      }
      ],
      "labels": {
        "webserver": "backend",
        "media": "images"
      }
    }