创建和管理标签

您可以将用户标签应用于 Dataproc 集群和作业资源,以便对资源和相关操作进行分组,以便稍后进行过滤和列出。您可以在创建资源时(在创建集群或提交作业时)将标签与资源进行关联。一旦资源与标签进行关联,标签即会传播到对资源执行的操作(集群创建、更新、修补或删除;作业提交、更新、取消或删除),可让您通过标签过滤和列出集群、作业和操作。

您还可以向与集群资源(例如虚拟机实例和磁盘)关联的 Compute Engine 资源添加标签。

什么是标签?

标签是一种键值对,可帮助您组织 Google Cloud Dataproc 集群和作业。您可以将标签附加到各项资源,然后根据标签对资源进行过滤。标签的相关信息会传递到结算系统,因此您可以根据标签来细分结算费用

标签的常见用途

我们不建议创建大量唯一标签,例如每个 API 调用的时间戳或单个值。以下是标签的一些常见用例:

  • 团队或费用中心标签:根据团队或费用中心添加标签,以区分不同团队所拥有的 Dataproc 集群和作业(例如 team:researchteam:analytics)。这种标签可用于费用核算或预算。

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

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

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

标签要求

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

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

创建和使用 Dataproc 标签

gcloud 命令

您可以使用 gcloud 命令行工具在创建或提交时指定要应用于 Dataproc 集群或作业的一个或多个标签。

gcloud dataproc clusters create args --labels env=prod,customer=acme
gcloud dataproc jobs submit args --labels env=prod,customer=acme
创建 Dataproc 集群或作业后,您可以使用 gcloud 命令行工具更新与该资源关联的标签。
gcloud dataproc clusters update args --update-labels env=prod,customer=acme
gcloud dataproc jobs update args --update-labels env=prod,customer=acme
同样,您可以使用 gcloud 命令行工具,使用以下格式的过滤条件表达式按标签过滤 Dataproc 资源:labels.<key=value>
gcloud dataproc clusters list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.env=prod"
gcloud dataproc jobs list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.customer=acme"
如需详细了解如何编写过滤条件表达式,请参阅 clusters.listjobs.list Dataproc API 文档。

REST API

您可以通过 Dataproc REST API 将标签附加到 Dataproc 资源。您还可以使用 clusters.createjobs.submit API,在创建或提交集群或作业时将标签附加到集群或作业。创建资源后,可以使用 clusters.patchjobs.patch API 修改标签。以下是 cluster.create 请求的 JSON 正文,该请求可将 key1:value 标签附加到集群上。

{
  "clusterName":"cluster-1",
  "projectId":"my-project",
  "config":{
    "configBucket":"",
    "gceClusterConfig":{
      "networkUri":".../networks/default",
      "zoneUri":".../zones/us-central1-f"
    },
    "masterConfig":{
      "numInstances":1,
      "machineTypeUri":"..../machineTypes/n1-standard-4",
      "diskConfig":{
        "bootDiskSizeGb":500,
        "numLocalSsds":0
      }
    },
    "workerConfig":{
      "numInstances":2,
      "machineTypeUri":"...machineTypes/n1-standard-4",
      "diskConfig":{
        "bootDiskSizeGb":500,
        "numLocalSsds":0
      }
    }
  },
  "labels":{
    "key1":"value1"
  }
}
您可以使用 clusters.listjobs.list API 按照以下格式列出符合指定过滤条件的资源:labels.<key=value>。下面是一个示例 Dataproc API clusters.list HTTPS GET 请求,该请求指定了 key=value 标签过滤条件。调用者插入 projectregion、过滤条件 label-keylabel-value 以及 api-key。请注意,此示例请求被划分为两行以提高可读性。
GET https://dataproc.googleapis.com/v1/projects/project/regions/region/clusters?
filter=labels.label-key=label-value&key=api-key
如需详细了解如何编写过滤条件表达式,请参阅 clusters.listjobs.list Dataproc API 文档。

控制台

您可以使用 Cloud Console 在创建或提交时指定一组要应用于 Dataproc 资源的标签。以下示例展示了如何从 Dataproc→创建集群页面创建与 Dataproc 集群关联的标签。

下面的示例展示了如何在 Dataproc→提交作业页面中创建与 Dataproc 作业关联的标签。

创建 Dataproc 资源后,您可以更新与该资源关联的标签。要更新标签,您必须先点击页面左上角的 SHOW INFO PANEL。下面是 Dataproc→列出群集页面中的一个示例。

显示信息面板后,您可以更新 Dataproc 资源的标签。以下示例展示了如何更新 Dataproc 集群标签。

您也可以在一次操作中更新多个项目的标签。在此示例中,同时更新了多个 Dataproc 作业的标签。

通过使用标签,您可以过滤 Dataproc→列出集群Dataproc→列出作业页面中显示的 Dataproc 资源。在页面顶部,您可以使用搜索模式 labels.<labelname>=<value> 按标签过滤资源。

自动应用的标签

在创建或更新集群时,Dataproc 会自动将多个标签应用于集群和集群资源。例如,在创建集群时,Dataproc 会将标签应用于虚拟机、永久性磁盘和加速器。自动应用的标签具有特殊的 goog-dataproc 前缀。

以下 goog-dataproc 标签会自动应用于 Cloud Dataproc 资源。您在创建集群时为预留的 goog-dataproc 标签提供的任何值都会替换自动提供的值。因此,不建议为这些标签提供您自己的值。

标签 说明
goog-dataproc-cluster-name 用户指定的集群名称
goog-dataproc-cluster-uuid 唯一集群 ID
goog-dataproc-location Dataproc 区域集群端点

您可以通过多种方式使用这些自动应用的标签,方式包括:

后续步骤