為部署作業加上標籤

標籤可讓您以簡便的方式整理彼此相關或具有關聯的部署作業。舉例來說,常見的做法是將用於實際工作環境、測試環境或開發環境的部署作業分別加上相對應的標籤,以便您在必要時輕鬆搜尋各個階段的部署作業。

什麼是標籤?

標籤是可指派給 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 呼叫的個別值建立標籤。這種做法的問題在於,如果值經常變更,或使用會使目錄雜亂的鍵,就難以有效篩選及回報資源。

標籤

標籤可用做資源的可查詢註解,但無法用來設定政策的條件。您可將資源是否具備特定標記設為條件,並按照這項條件允許或拒絕政策,進而精細控管政策。詳情請參閱「標記總覽」。

建立含有標籤的部署作業

建立部署作業時,您可以提供一或多個鍵/值組合做為標籤來為部署作業加上標籤。如果您目前已經擁有部署作業,則可以透過更新部署作業的方式來加上新標籤或變更現有標籤。

您必須使用 gcloud CLI 或 API 才能建立具有標籤的部署作業。

gcloud

gcloud 中提供 --labels 旗標並加上以逗號分隔的鍵/值組合清單,即可為部署作業加上標籤。例如,下列指令會將 environment=productionstorage=media 這兩個標籤新增至部署作業:

gcloud deployment-manager deployments create example-deployment --config example-config.yaml \
    --labels environment=production,storage=media

如要查看套用至部署作業的標籤,請取得部署作業的說明:

gcloud deployment-manager deployments describe example-deployment
---
fingerprint: 0p03t0z31PQLOrGH8KdhWQ==
id: '2204841443843636456'
insertTime: '2017-04-18T09:42:47.323-07:00'
labels:
- key: environment
  value: production
- key: storage
  value: media
manifest: manifest-1492533767362
name: example-deployment
operation:
  endTime: '2017-04-18T09:43:04.581-07:00'
  name: operation-1492533767010-54d7398ff76d1-7930b926-f64e72ae
  operationType: insert
  progress: 100
  startTime: '2017-04-18T09:42:48.034-07:00'
  status: DONE
  user:user@example.com

API

在 API 中,按照操作說明建立部署作業,並在要求內文中加入新的 labels 屬性。例如:

{
  "name": "example-deployment",
  "target": {
    "config": {
      "content": "..."
      },
   }
  "labels": [
  {
    "key": "environment",
    "value": "production"
  },
  {
    "key": "storage",
    "value": "media"
  }
 ]
}

移除標籤

主控台

  1. 前往 Google Cloud 控制台的「Deployments」(部署作業) 頁面。

    前往「Deployments」(部署作業) 頁面

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 找到您要移除標籤的部署作業,勾選旁邊的方塊,畫面隨即會出現一個側邊面板。

  4. 針對您要移除的每個標籤,按一下旁邊的 [X]

  5. 儲存變更。

gcloud

gcloud 中使用 deployments update 指令並提供 --remove-labels 旗標,接著加上以逗號分隔的待移除標籤鍵清單,即可移除標籤。

例如,下列指令會移除包含 environment 鍵的標籤:

gcloud deployment-manager deployments update example-deployment --remove-labels environment

API

在 API 中按照操作說明更新部署作業,並加入要求內文中不含 labels 屬性的部署作業更新內容,即可有效移除標籤。

新增或更新標籤

您可以對現有部署作業新增標籤或更新標籤。

主控台

  1. 前往 Google Cloud 控制台的「Deployments」(部署作業) 頁面。

    前往「Deployments」(部署作業) 頁面

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 找到您要更新標籤的部署作業,勾選旁邊的方塊,畫面隨即會出現一個側邊面板。

  4. 如要變更標籤值,請更新相應的標籤項目;如要變更標籤鍵,則需要刪除標籤並使用新的鍵再次新增。

  5. 儲存變更。

gcloud

gcloud 中使用 deployments update 指令並提供 --update-labels 旗標,接著加上以逗號分隔的已更新標籤清單,即可更新或新增標籤:

例如,下列指令會更新 environment 標籤:

gcloud deployment-manager deployments update example-deployment --update-labels environment=production

API

在 API 中按照操作說明更新部署作業,並在要求內文中省略 labels 屬性,即可從部署作業中移除標籤。

在預覽部署作業期間新增標籤

您可以在建立部署作業前先預覽部署作業。在預覽期間,您可以向預覽的部署作業指派標籤。例如:

gcloud deployment-manager deployments create example-deployment --config example-config.yaml \
    --labels environment=production --preview

如要在預覽期間變更標籤,您必須使用新的標籤來更新預覽。如要進一步瞭解預覽功能,請參閱預覽設定說明文件。

使用標籤篩選搜尋內容

搜尋資源時,您可以使用標籤篩選搜尋結果。

主控台

  1. 前往 Google Cloud 控制台的「Deployments」(部署作業) 頁面。

    前往「Deployments」(部署作業) 頁面

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 在搜尋列中輸入 labels.,搜尋列會自動列出可篩選的標籤。

gcloud

gcloud 中,提出 list 要求並使用 --filter 旗標。如要篩選標籤,請使用 labels.[KEY]=[VALUE] 語法。舉例來說,如要篩選含有 environment 鍵和 production 值的標籤,您可以執行以下指令:

gcloud deployment-manager deployments list --filter labels.environment=production

如需 gcloud CLI 中篩選器語法的完整說明,請參閱 gcloud topic filters 說明文件

API

在 API 中,您可以使用網址編碼的 filter 查詢參數發出 list 要求:舉例來說,如要根據 environment 等於 production 值的標籤鍵進行篩選,您可以提出以下 GET 要求:

GET https://www.googleapis.com/deploymentmanager/v2/deployments/list?filter=labels.environment+eq+production

詳情請參閱 API 參考資料中的 filter 說明文件

後續步驟