本文档简要介绍了标签及其功能。
什么是标签?
标签是一种可分配给 Google Cloud 资源的键值对。它们可以帮助您按照所需的粒度大规模组织这些资源并管理费用。您可以将标签附加到各项资源,然后根据其标签对资源进行过滤。标签的相关信息会转发到结算系统,以便您按标签细分结算费用。使用内置的结算报告,您可以按资源标签对费用进行过滤和分组。您还可以使用标签查询结算数据导出。
标签要求
应用于资源的标签必须符合以下要求:
- 每个资源最多可以有 64 个标签。
- 每个标签都必须采用键值对形式。
- 键至少包含 1 个字符,最多包含 63 个字符,且不能为空。值可以为空,且最多包含 63 个字符。
- 键和值只能包含小写字母、数字字符、下划线和短划线。所有字符必须使用 UTF-8 编码,允许使用国际字符。 键必须以小写字母或国际字符开头。
- 标签的键部分在单个资源内必须是唯一的。不过,您可以将同一个键用于多个资源。
这些限制适用于每个标签的键和值,以及带有标签的各个 Google Cloud 资源。您可以对一个项目的所有资源应用任意数量的标签。
标签的常见用途
以下是标签的一些常见使用场景:
团队或成本中心标签:根据团队或成本中心添加标签,以区分不同团队(例如
team:research
和team:analytics
)所拥有的资源。您可以在进行成本核算或预算时使用此类标签。组件标签:例如
component:redis
、component:frontend
、component:ingest
、component:dashboard
。环境或阶段标签:例如
environment:production
和environment:test
。状态标签:例如
state:active
、state:readytodelete
、state:archive
。所有权标签:用于标识负责运营的团队,例如:
team:shopping-cart
。
- 网络标签:标签可附加到虚拟机。您在过去定义的网络标记将显示为没有值的标签。
我们不建议创建大量唯一标签,例如为每个 API 调用的时间戳或个别值创建标签。这种方法的问题在于,当值经常变化或键导致目录杂乱时,很难有效地过滤和报告资源。
标签和标记
标签可用作资源可查询的注释,但不能用于设置政策的条件。通过对政策进行精细控制,标记提供了一种有条件地允许或拒绝政策的方法,具体取决于资源是否具有特定的标记。如需了解详情,请参阅标记概览。
权限
如需为项目添加、修改和查看标签,您需要具备以下权限:
- 您可以调用
projects.patch()
方法来添加或修改标签。这需要resourcemanager.projects.update
权限。 - 您可以调用
projects.get()
方法查看项目的标签。这需要resourcemanager.projects.get
权限。
使用标签了解费用
您可以为资源附加标签,然后根据标签过滤资源。标签的相关信息将转发到结算系统,以便您根据标签细分结算费用。
您可以通过以下方式使用标签来了解费用:
- 您可以向虚拟机或 Cloud Storage 存储分区添加
costcenter=cost_center_name
、service=service_name
和environment=environment_name
等标签。这样,您就可以了解资源的部署位置、用途以及应将其计入的成本中心。 - 您可以启用将结算数据导出到 BigQuery 的功能。系统会将标签与相应的 Google Cloud 资源及其使用情况一起导出到 BigQuery。这样,您就可以监控应用中运行购物车服务的费用或开发者测试机的费用等方面。
- 您可以将 BigQuery 与标签结合使用,了解所有测试系统资源与生产环境资源的费用,或特定服务的费用。
示例
在此示例中,项目的 playlist
服务费用是通过将使用情况和标签导出到 BigQuery 来确定的。为此,请先启用将结算数据导出到 BigQuery 的功能。labels-demo-prj
是资源使用情况的来源,labels_demo_bqexport
是存储使用情况数据的目标数据集。将使用情况和标签导出到 BigQuery 后,您可以确定 playlist
服务的费用。
以下是 BigQuery 中 Compute Engine 使用情况及其相关费用的详细信息。