本文档简要介绍了标签及其功能。
什么是标签?
标签是您可以分配给 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 用量及其相关费用的详细信息。