標籤是鍵/值組合,可用於 Google Cloud ,將相關或相關聯的資源分組。舉例來說,在 Compute Engine 中,您可以將 VM 分組為正式、準備或開發等類別,以便搜尋各個開發階段的資源。
為資源加上標籤後,即可運用巢狀篩選功能,使用標籤對資源執行更精細的搜尋。
事前準備
- 參閱永久磁碟說明文件。
- 參閱映像檔說明文件。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
什麼是標籤?
標籤是可指派給 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 呼叫的個別值建立標籤。這種做法的問題在於,如果值經常變更,或使用會使目錄雜亂的鍵,就難以有效篩選及回報資源。
標籤
標籤可用做資源的可查詢註解,但無法用來設定政策的條件。您可將資源是否具備特定標記設為條件,並按照這項條件允許或拒絕政策,進而精細控管政策。詳情請參閱「標記總覽」。
在 Compute Engine 上使用標籤
您可以將標籤套用至下列 Compute Engine 資源:
- 虛擬機器 (VM) 執行個體
- 圖片
- 永久磁碟
- 永久磁碟快照
您也可以在相關 Google Cloud 元件上使用標籤,例如:
- Cloud Storage bucket
- 網路資源:
舉例來說,您可以為資源新增下列鍵/值組合標籤:
{ "labels": { "vmrole": "webserver", "environment": "production", "location": "west",... } }
建立具有標籤的資源
您可以在建立新資源時將標籤套用到該資源。
主控台
gcloud
如要新增標籤,請使用
create
子指令並加上--labels
旗標。您可以使用下列gcloud
指令,將標籤新增至 Compute Engine 資源:- 如為 VM 執行個體,請使用
gcloud compute instances create
指令。 - 如果是快照,請使用
gcloud compute disks snapshot
指令。 - 如果是圖片,請使用
gcloud compute images create
指令。 - 如果是磁碟,請使用
gcloud compute disks create
指令。
示例
gcloud compute instances create ... \ --labels webserver=backend,media=images
REST
在 API 中提出新增資源的
POST
要求期間,在要求內容中加入labels
屬性,以便將標籤套用至新資源。- 如為 VM 執行個體,請使用
instances.insert()
方法。 - 如果是快照,請使用
disks.createSnapshot()
方法。 - 如果是圖片,請使用
images.insert()
方法。 - 如為磁碟,請使用
disks.insert()
方法。
舉例來說,下列程式碼片段會提出
POST
要求,建立具有webserver:backend
和media:images
標籤的 VM 執行個體:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances { "name": "myVM", "machineType": "zones/us-central1-f/machineTypes/custom-2-15360-ext", ..., "labels": { "webserver": "backend", "media": "images" } }
在現有資源中新增或更新標籤
您可以使用Google Cloud 控制台、gcloud CLI 或 Compute Engine API,在資源中新增標籤或更新現有標籤。如要新增或更新轉送規則的標籤,請使用 gcloud CLI 或 Compute Engine API。
主控台
前往要新增標籤的資源頁面。
- 如為 VM 執行個體,請前往「VM instances」(VM 執行個體)。
- 如為快照,請前往「快照」。
- 如為映像檔,請前往「Images」。
- 如為磁碟,請前往「Disks」(磁碟)。
- 如為靜態外部 IP 位址,請前往「外部 IP 位址」。
- 如要查看 VPN 通道,請前往「VPN」。
選取您想加上標籤的資源旁邊的核取方塊。
如要展開標籤欄,請按一下「顯示資訊面板」。
在面板中選取「標籤」。
如要新增標籤,請按一下「新增標籤」
,然後新增鍵/值組合。如要更新標籤,請選取現有標籤並修改其值。
儲存變更。
gcloud
如要新增或變更標籤,請使用
update
子指令並加上--update-labels
旗標。您可以使用下列gcloud
指令,更新 Compute Engine 資源的標籤:- 如為 VM 執行個體,請使用
gcloud compute instances update
指令。 - 如果是快照,請使用
gcloud compute snapshots update
指令。 - 如果是圖片,請使用
gcloud compute images update
指令。 - 如要查看磁碟,請使用
gcloud compute disks update
指令。 - 如要使用轉送規則,請使用
gcloud compute forwarding-rules update
指令。 - 如要使用靜態外部 IP 位址,請使用
gcloud beta compute addresses update
指令。 - 如果是 VPN 通道,請使用
gcloud beta compute vpn-tunnels update
指令。
示例
gcloud compute disks update example-disk \ --update-labels backend=webserver,media=images
如果您提供的是現有標籤鍵,Google Cloud CLI 會將現有的標籤鍵更新為新的標籤值。如果您提供的是新標籤鍵,則指令列工具會將其新增到標籤清單。
REST
如要新增或更新標籤,請使用最新的指紋和要套用的完整標籤清單,對資源的
setLabels
方法提出POST
要求:- 如為 VM 執行個體,請使用
instances.setLabels()
方法。 - 如果是快照,請使用
snapshots.setLabels()
方法。 - 如果是圖片,請使用
images.setLabels()
方法。 - 如為磁碟,請使用
disks.setLabels()
方法。 - 如要使用轉送規則,請使用
forwardingRules.setLabels()
方法。 - 如要使用地區靜態外部 IP 位址,請使用 beta
addresses.setLabels()
方法。 - 如要使用全域靜態外部 IP 位址,請使用 beta
globalAddresses.setLabels()
方法。 - 如果是 VPN 通道,請使用Beta 版
vpnTunnels.setLabels()
方法。
與中繼資料和標記類似,如果資源含有您要保留的既有標籤,您必須將這些標籤與要加入的新標籤一起納入要求。
舉例來說,下列程式碼片段會向 VM 執行個體提出
POST
要求,以設定environment:test
和an-existing-tag:yes
標籤:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { "environment": "test", "an-existing-tag": "yes" }, "labelFingerprint": "42WmSpB8rSM=" }
查看標籤
您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API 查看資源的標籤。如要查看轉送規則的標籤,請使用 gcloud CLI 或 Compute Engine API。
主控台
前往資源頁面。
- 如為 VM 執行個體,請前往「VM instances」(VM 執行個體)。
- 如為快照,請前往「快照」。
- 如為映像檔,請前往「Images」。
- 如為磁碟,請前往「Disks」(磁碟)。
- 如為靜態外部 IP 位址,請前往「外部 IP 位址」。
- 如要查看 VPN 通道,請前往「VPN」。
按一下資源即可查看詳細資料。
找出「標籤」。
gcloud
如要查看標籤,請使用
describe
子指令。您可以使用下列gcloud
指令,查看 Compute Engine 資源的標籤:- 如為 VM 執行個體,請使用
gcloud compute instances describe
指令。 - 如果是快照,請使用
gcloud compute snapshots describe
指令。 - 如果是圖片,請使用
gcloud compute images describe
指令。 - 如要查看磁碟,請使用
gcloud compute disks describe
指令。 - 如要使用轉送規則,請使用
gcloud compute forwarding-rules describe
指令。 - 如要使用靜態外部 IP 位址,請使用
gcloud beta compute addresses describe
指令。 - 如果是 VPN 通道,請使用
gcloud beta compute vpn-gateways describe
指令。
示例
gcloud compute disks describe example-disk
輸出內容包含下列標籤:
... id: '5047929990219134234' kind: compute#disk labelFingerprint: GHZ1Un209U=0 labels: environment: dev department: finance ...
REST
如要擷取標籤,請對下列資源發出
GET
要求:- 如為 VM 執行個體,請使用
instances.get()
方法。 - 如果是快照,請使用
snapshots.get()
方法。 - 如果是圖片,請使用
images.get()
方法。 - 如為磁碟,請使用
disks.get()
方法。 - 如要使用轉送規則,請使用
forwardingRules.get()
方法。 - 如要使用地區靜態外部 IP 位址,請使用 Beta 版
addresses.get()
方法。 - 如要使用全域靜態外部 IP 位址,請使用 beta
globalAddresses.get()
方法。 - 如果是 VPN 通道,請使用Beta 版
vpnTunnels.get()
方法。
舉例來說,下列程式碼片段會發出
GET
要求,擷取 VM 執行個體的標籤:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
更改下列內容:
- PROJECT_ID:專案 ID
- ZONE:VM 所在可用區
- VM_NAME:VM 名稱
為 API 要求取得標籤指紋
在 API 更新或新增標籤時,您需要在要求中提供最新標籤指紋,以免與其他要求發生衝突。只有 API 要求會需要指紋, Google Cloud console 和 Google Cloud CLI 工具則不需要。
如要取得最新
labelsFingerprint
,請向下列資源發出GET
要求:- 如為 VM 執行個體,請使用
instances.get()
方法。 - 如果是快照,請使用
snapshots.get()
方法。 - 如果是圖片,請使用
images.get()
方法。 - 如為磁碟,請使用
disks.get()
方法。 - 如要使用轉送規則,請使用
forwardingRules.get()
方法。 - 如要使用地區靜態外部 IP 位址,請使用 Beta 版
addresses.get()
方法。 - 如要使用全域靜態外部 IP 位址,請使用 beta
globalAddresses.get()
方法。 - 如果是 VPN 通道,請使用Beta 版
vpnTunnels.get()
方法。
舉例來說,下列程式碼片段會取得 VM 執行個體的
labelsFingerprint
:GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
回應包含
labelFingerprint
屬性:200 OK { "kind": "compute#instance", "id": "4392196237934605253", "creationTimestamp": "2015-09-15T14:05:16.475-07:00", "zone": "https://content.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f", "status": "RUNNING", ... "labels": { "environment": "test" }, "labelFingerprint": "p1ty_9HoBk0=" }
移除標籤
您可以使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API,從資源中移除標籤。如要移除轉送規則的標籤,請使用 gcloud CLI 或 Compute Engine API。
主控台
前往要移除標籤的資源頁面。
- 如為 VM 執行個體,請前往「VM instances」(VM 執行個體)。
- 如為快照,請前往「快照」。
- 如為映像檔,請前往「Images」。
- 如為磁碟,請前往「Disks」(磁碟)。
- 如為靜態外部 IP 位址,請前往「外部 IP 位址」。
- 如要查看 VPN 通道,請前往「VPN」。
找出您要移除標籤的資源,然後勾選旁邊的核取方塊。
如要展開標籤欄,請按一下「顯示資訊面板」。
如要刪除標籤,請按一下「刪除」
。儲存變更。
gcloud
如要新增或變更標籤,請使用
update
子指令並加上--remove-labels
旗標。您可以使用下列gcloud
指令,移除 Compute Engine 資源的標籤:- 如為 VM 執行個體,請使用
gcloud compute instances update
指令。 - 如果是快照,請使用
gcloud compute snapshots update
指令。 - 如果是圖片,請使用
gcloud compute images update
指令。 - 如要查看磁碟,請使用
gcloud compute disks update
指令。 - 如要使用轉送規則,請使用
gcloud compute forwarding-rules update
指令。 - 如要使用靜態外部 IP 位址,請使用
gcloud beta compute addresses update
指令。 - 如果是 VPN 通道,請使用
gcloud beta compute vpn-tunnels update
指令。
示例
gcloud compute disks update example-disk \ --remove-labels backend,media
REST
如要移除標籤,請使用最新的指紋和要套用的完整標籤清單,對下列資源的
setLabels
方法提出POST
要求:- 如為 VM 執行個體,請使用
instances.setLabels()
方法。 - 如果是快照,請使用
snapshots.setLabels()
方法。 - 如果是圖片,請使用
images.setLabels()
方法。 - 如為磁碟,請使用
disks.setLabels()
方法。 - 如要使用轉送規則,請使用
forwardingRules.setLabels()
方法。 - 如要使用地區靜態外部 IP 位址,請使用 Beta 版
addresses.setLabels()
方法。 - 如要使用全域靜態外部 IP 位址,請使用 beta
globalAddresses.setLabels()
方法。 - 如果是 VPN 通道,請使用Beta 版
vpnTunnels.setLabels()
方法。
如要移除所有標籤,請提供目前的
labelsFingerprint
和空白標籤清單。如果只要移除部分標籤,則請提供要保留的標籤清單 (省略要移除的標籤)。舉例來說,下列程式碼片段會移除 VM 的所有標籤:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { }, "labelFingerprint": "42WmSpB8rSM=" }
使用標籤篩選搜尋內容
您可以使用Google Cloud 控制台、gcloud CLI 或 Compute Engine API 搜尋資源,並依標籤篩選結果。如要依標籤篩選轉送規則,請使用 gcloud CLI 或 Compute Engine API。
主控台
前往要取得篩選資源清單的資源頁面。
- 如為 VM 執行個體,請前往「VM instances」(VM 執行個體)。
- 如為快照,請前往「快照」。
- 如為映像檔,請前往「Images」。
- 如為磁碟,請前往「Disks」(磁碟)。
- 如為靜態外部 IP 位址,請前往「外部 IP 位址」。
- 如要查看 VPN 通道,請前往「VPN」。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
在搜尋列中,輸入您的鍵、值或鍵/值組合。搜尋結果會包含所有部分相符的結果。
舉例來說,如只要顯示具有
env:dev
標籤的資源,您可以輸入下列任一內容:- 輸入金鑰:
env
- 輸入值:
dev
- 輸入鍵/值組合:
env:dev
- 輸入金鑰:
gcloud
如要根據標籤篩選,請將下列資源的
list
子指令搭配--filter
旗標使用:- 如為 VM 執行個體,請使用
gcloud compute instances list
指令。 - 如果是快照,請使用
gcloud compute snapshots list
指令。 - 如果是圖片,請使用
gcloud compute images list
指令。 - 如要查看磁碟,請使用
gcloud compute disks list
指令。 - 如要使用轉送規則,請使用
gcloud compute forwarding-rules list
指令。 - 如要使用靜態外部 IP 位址,請使用
gcloud beta compute addresses list
指令。 - 如果是 VPN 通道,請使用
gcloud beta compute vpn-tunnels list
指令。
--filter
旗標的值必須採用labels.KEY=VALUE
格式。舉例來說,如要篩選含有env
鍵和dev
值的標籤,您可以執行以下指令:gcloud compute instances list \ --filter labels.env=dev
如要進一步瞭解 gcloud CLI 中的篩選器語法,請參閱
gcloud topic filters
說明文件。REST
如要篩選資源,請向下列資源的
list
方法發出GET
要求,並加入篩選器欄位:- 如為 VM 執行個體,請使用
instances.list()
方法。 - 如果是快照,請使用
snapshots.list()
方法。 - 如果是圖片,請使用
images.list()
方法。 - 如為磁碟,請使用
disks.list()
方法。 - 如要使用轉送規則,請使用
forwardingRules.list()
方法。 - 如要使用地區靜態外部 IP 位址,請使用 Beta 版
addresses.list()
方法。 - 如要使用全域靜態外部 IP 位址,請使用 beta
globalAddresses.list()
方法。 - 如果是 VPN 通道,請使用Beta 版
vpnTunnels.list()
方法。
舉例來說,如要列出專案
myproject
和可用區us-central1-a
中,具有env:dev
鍵/值組合標籤的所有 VM,請在list
要求中將篩選器欄位設為labels.env:dev
。如果將篩選器欄位做為查詢字串參數,請使用網址編碼的參數值,例如:filter=labels.env%3Adev
:GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?filter=labels.env%3Adev
詳情請參閱 Compute Engine API 參考資料中的
filter
說明文件。VM 標籤和標記的關係
以前標籤和標記是互相關聯的。舉例來說,將
webserver:test
標籤加入 VM 時,Compute Engine 會自動在 VM 中新增webserver
旗標。現在標籤和標記是各自獨立。如果您在 VM 上建立標籤,Compute Engine 不會為 VM 建立標記。如需在 VM 上建立標記,您必須手動建立。
如要進一步瞭解標記及其用途,請參閱標記總覽。
後續步驟
- 瞭解如何比較代碼和網路標記。
- 瞭解如何管理 Compute Engine 資源的標記。
- 請參閱
filter
查詢參數,瞭解如何篩選。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-29 (世界標準時間)。
-