建立及管理標籤

Dataproc 叢集和工作都可以套用使用者標籤,以便將這些資源分組,然後進行篩選並建立清單。在建立資源的當下 (亦即建立叢集或提交工作時),標籤就會與資源建立關聯。資源與標籤建立關聯後,任何對資源執行的作業 (叢集的建立、更新、修補或刪除;工作的提交、更新、取消或刪除) 都會沿用該標籤,可據以篩選並列出相關叢集、工作和作業。

其他與叢集資源相關聯的 Compute Engine 資源 (例如虛擬機器執行個體和磁碟) 也都可以加上標籤。

什麼是標籤?

標籤是一種鍵/值組合,可指派給 Dataproc 叢集和工作,有助於在大規模環境下整理資源,並依所需精細程度管理成本。每項資源均可加上標籤,並根據標籤篩選資源。標籤相關資訊會轉送到帳單系統,方便依照標籤詳細分析帳單費用。使用內建的帳單報表,可依資源標籤篩選成本並加以分組。此外,亦可使用標籤查詢帳單資料匯出檔

標籤需求條件

套用於資源的標籤必須符合下列需求條件:

  • 每個叢集或工作最多可以有 32 個標籤。
  • 每個標籤都必須是鍵/值組合。
  • 鍵的長度必須至少為 1 個字元,最多 63 個字元,且不能空白。值可以空白,長度上限為 63 個字元。
  • 鍵和值只能使用小寫字母、數字字元、底線和連字號。所有字元都必須使用 UTF-8 編碼,允許國際字元。鍵的開頭必須是小寫字母或國際字元。
  • 標籤中的鍵部分不得重複,但可讓多個資源使用相同的鍵。

上述限制適用於各個標籤的鍵和值,以及帶有標籤的個別 Dataproc 叢集或工作;但是在每項專案內,所有資源可套用的標籤總數並無上限。

標籤的常見用法

以下是一些常見的標籤用途:

  • 團隊或成本中心標籤:依據團隊或成本中心來新增標籤,藉此區別不同團隊 (例如 team:researchteam:analytics) 擁有的 Dataproc 叢集和工作,這類標籤可用於成本會計或預算編列作業。

  • 元件標籤:例如 component:rediscomponent:frontendcomponent:ingestcomponent:dashboard

  • 環境或階段標籤:例如 environment:productionenvironment:test

  • 狀態標籤:例如 state:activestate:readytodeletestate:archive

  • 擁有權標籤:用於識別各項作業的責任團隊,例如:team:shopping-cart

我們不建議建立大量的不重複標籤,例如幫時間戳記或每個 API 呼叫的個別值建立標籤。這種做法的問題在於,如果標籤值頻繁變更,或標籤鍵使目錄變得雜亂,就難以有效篩選資源並製作報表。

標籤和標記

標籤是一種註解,可用於查詢資源,但無法設定政策條件。標記則可作為判斷條件:系統可依據資源是否具備特定標記,允許或拒絕相應的政策,進而實現精細的政策控管。詳情請參閱「標記總覽」。

建立並使用 Dataproc 標籤

gcloud 指令

您可以使用 Google Cloud CLI,指定要在建立 Dataproc 叢集或提交 Dataproc 工作時套用至該叢集或工作的一或多個標籤。

gcloud dataproc clusters create args --labels environment=production,customer=acme
gcloud dataproc jobs submit args --labels environment=production,customer=acme

Dataproc 叢集或工作建立完成後,您就可以使用 Google Cloud CLI 更新與該資源相關聯的標籤。

gcloud dataproc clusters update args --update-labels environment=production,customer=acme
gcloud dataproc jobs update args --update-labels environment=production,customer=acme

同樣地,您可以使用 Google Cloud CLI 並採用下列格式的篩選運算式,按標籤篩選 Dataproc 資源:labels.<key=value>

gcloud dataproc clusters list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.environment=production"
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 說明文件。

控制台

在建立 Dataproc 叢集或提交 Dataproc 工作時,可以透過 Google Cloud 控制台指定要新增至該資源的一組標籤。

  • 在 Dataproc「Create a cluster」(建立叢集) 頁面的「Customize cluster」(自訂叢集) 面板中,從「Labels」(標籤) 區段將標籤新增至叢集。
  • 從 Dataproc 的「Submit a job」(提交工作) 頁面,為工作新增標籤。

建立 Dataproc 叢集或提交 Dataproc 工作後,即可更新與該資源相關聯的標籤。如要更新標籤,請按一下所列叢集或工作的選取方框,然後按一下 SHOW INFO PANEL。以下是 Dataproc→List clusters (列出叢集) 頁面的範例。

系統顯示資訊面板後,即可更新 Dataproc 叢集或工作所套用的標籤。以下範例說明如何更新 Dataproc 叢集套用的標籤。

在單次作業中,也可以更新多個項目的標籤。下列範例說明如何同時更新多個 Dataproc 工作的標籤。

標籤可用於篩選顯示在「Dataproc→List clusters」(列出叢集) (https://console.cloud.google.com/dataproc/clusters) 和「Dataproc→List jobs」(列出工作) (https://console.cloud.google.com/dataproc/jobs) 頁面上的 Dataproc 資源。在頁面頂端,您可以使用搜尋模式 `labels.=` 按標籤篩選資源。

自動套用的標籤

建立或更新叢集時,Dataproc 會將數個標籤自動套用於叢集和叢集資源。例如在建立叢集時,Dataproc 會將標籤套用於虛擬機器、永久磁碟和加速器。自動套用的標籤會有特殊的 goog-dataproc 前置字元。

下列 goog-dataproc 標籤會自動套用於 Dataproc 資源。在建立叢集時,任何針對預留 goog-dataproc 標籤所指定的值,都會覆寫系統自動提供的值。因此,不建議自行設定這些標籤的值。

標籤 說明
goog-dataproc-cluster-name 使用者指定的叢集名稱。
goog-dataproc-cluster-uuid 不重複的叢集 ID。
goog-dataproc-location Dataproc 區域叢集端點

這些自動套用的標籤有多種用途,包括:

後續步驟