Label adalah pasangan nilai kunci yang dapat digunakan di Google Cloud untuk mengelompokkan resource terkait atau terasosiasi. Misalnya, di Compute Engine, Anda dapat menggunakan label untuk mengelompokkan VM dalam kategori seperti produksi, staging, atau pengembangan sehingga Anda dapat menelusuri resource yang termasuk dalam setiap tahap pengembangan.
Setelah menambahkan label ke resource, Anda dapat memanfaatkan fitur pemfilteran bertingkat guna melakukan penelusuran yang lebih tepat untuk resource Anda menggunakan label.
Sebelum memulai
- Baca dokumentasi persistent disk.
- Baca dokumentasi image.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Apa yang dimaksud dengan label?
Label adalah pasangan nilai kunci yang dapat Anda tetapkan ke instance Google Cloud . Label membantu Anda mengatur resource ini dan mengelola biaya dalam skala besar, dengan perincian yang Anda butuhkan. Anda dapat menghubungkan label ke tiap resource, lalu memfilter resource menurut labelnya. Informasi tentang label akan diteruskan ke sistem penagihan, sehingga Anda dapat mengelompokkan tagihan biaya berdasarkan label. Dengan laporan penagihan bawaan, Anda dapat memfilter dan mengelompokkan biaya berdasarkan label resource. Anda juga dapat menggunakan label untuk membuat kueri ekspor data penagihan.
Persyaratan untuk label
Label yang diterapkan ke resource harus memenuhi persyaratan berikut:
- Setiap resource dapat memiliki maksimal 64 label.
- Setiap label harus berupa pasangan nilai kunci.
- Kunci memiliki panjang minimum 1 karakter dan panjang maksimum 63 karakter, serta tidak boleh kosong. Nilai boleh kosong dan memiliki panjang maksimum 63 karakter.
- Kunci dan nilai hanya boleh berisi huruf kecil, karakter numerik, garis bawah, dan tanda pisah. Semua karakter harus menggunakan encoding UTF-8, dan boleh menggunakan karakter internasional. Kunci harus diawali dengan huruf kecil atau karakter internasional.
- Bagian kunci label harus unik dalam satu resource. Namun, Anda dapat menggunakan kunci yang sama dengan beberapa resource.
Batasan ini berlaku untuk kunci dan nilai untuk setiap label, serta untuk masing-masing resource Google Cloud yang memiliki label. Tidak ada batasan jumlah label yang dapat diterapkan di semua resource dalam satu project.
Penggunaan label secara umum
Berikut adalah beberapa kasus penggunaan umum untuk label:
Label tim atau pusat biaya: Menambahkan label berdasarkan tim atau pusat biaya untuk membedakan instance yang dimiliki oleh tim yang berbeda (misalnya,
team:researchdanteam:analytics). Anda dapat menggunakan jenis label ini untuk pencatatan atau penganggaran biaya.Label komponen: Misalnya,
component:redis,component:frontend,component:ingest, dancomponent:dashboard.Label lingkungan atau tahap: Misalnya,
environment:productiondanenvironment:test.Label status: Misalnya,
state:active,state:readytodelete, danstate:archive.Label kepemilikan: Digunakan untuk mengidentifikasi tim yang bertanggung jawab atas operasi, misalnya:
team:shopping-cart.
- Label virtual machine: Label dapat dilampirkan ke virtual machine. Tag virtual machine yang Anda tentukan sebelumnya muncul sebagai label tanpa nilai.
Sebaiknya Anda tidak membuat label unik dalam jumlah besar, seperti untuk stempel waktu atau nilai individu bagi tiap panggilan API. Masalah dari pendekatan ini adalah ketika nilai sering berubah atau dengan adanya kunci yang mengacaukan katalog, pemfilteran dan pelaporan resource secara efektif akan sulit dilakukan.
Label dan tag
Label dapat digunakan sebagai anotasi yang dapat dikueri untuk resource, tetapi tidak dapat digunakan untuk menetapkan kondisi pada kebijakan. Tag menyediakan cara untuk mengizinkan atau menolak kebijakan secara bersyarat berdasarkan apakah resource memiliki tag tertentu, dengan memberikan kontrol terperinci atas kebijakan. Untuk informasi selengkapnya, lihat Ringkasan tag.
Menggunakan label di Compute Engine
Anda dapat menerapkan label ke resource Compute Engine berikut:
- Instance virtual machine (VM)
- Image
- Persistent disk
- Snapshot persistent disk
Anda juga dapat menggunakan label pada komponen Google Cloud terkait, seperti berikut:
- Bucket Cloud Storage
- Resource jaringan:
- Aturan penerusan yang digunakan dengan Load Balancer Aplikasi internal (aturan penerusan load balancer lainnya tidak didukung)
- Tunnel VPN
- Alamat IP eksternal statis
Misalnya, Anda dapat menambahkan label berikut sebagai pasangan nilai kunci ke resource:
{
"labels": {
"vmrole": "webserver",
"environment": "production",
"location": "west",...
}
}
Membuat resource dengan label
Saat membuat resource baru, Anda dapat menerapkan label ke resource tersebut.
Konsol
Buka halaman resource yang ingin dibuat.
- Untuk instance VM, buka Create an instance.
- Untuk disk, buka Create a disk.
- Untuk snapshot, buka Create a snapshot.
- Untuk image, buka Create an image.
Di bagian Labels, klik Add label.
Lanjutkan proses pembuatan.
gcloud
Untuk menambahkan label, gunakan sub-perintah create dengan flag --labels. Anda
dapat menambahkan label ke resource Compute Engine menggunakan
perintah gcloud berikut:
- Untuk instance VM, gunakan perintah
gcloud compute instances create. - Untuk snapshot, gunakan perintah
gcloud compute disks snapshot. - Untuk image, gunakan perintah
gcloud compute images create. - Untuk disk, gunakan perintah
gcloud compute disks create.
Contoh
gcloud compute instances create ... \
--labels webserver=backend,media=images
REST
Di API, selama permintaan POST untuk menambahkan resource baru, tambahkan
properti labels dalam isi permintaan untuk menerapkan label ke resource baru.
- Untuk instance VM, gunakan metode
instances.insert(). - Untuk snapshot, gunakan metode
disks.createSnapshot(). - Untuk image, gunakan metode
images.insert(). - Untuk disk, gunakan metode
disks.insert().
Misalnya, cuplikan berikut membuat permintaan POST untuk membuat instance
VM dengan label webserver:backend dan media:images:
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"
}
}
Menambahkan atau memperbarui label ke resource yang ada
Anda dapat menambahkan label atau memperbarui label yang ada di resource menggunakan Google Cloud konsol, gcloud CLI, atau Compute Engine API. Untuk menambahkan atau memperbarui label aturan penerusan, gunakan gcloud CLI atau Compute Engine API.
Konsol
Buka halaman resource yang ingin Anda tambah labelnya.
- Untuk instance VM, buka Instance VM.
- Untuk snapshot, buka Snapshot.
- Untuk image, buka Image.
- Untuk disk, buka Disk.
- Untuk alamat IP eksternal statis, buka Alamat IP eksternal.
- Untuk tunnel VPN, buka VPN.
Pilih kotak centang di samping resource yang ingin diberi label.
Untuk meluaskan kolom label, klik Tampilkan panel info.
Di panel, pilih Label.
Untuk menambahkan label, klik Tambahkan label dan tambahkan pasangan nilai kunci.
Untuk memperbarui label, pilih label yang ada dan ubah nilainya.
Simpan perubahan Anda.
gcloud
Untuk menambahkan atau mengubah label, gunakan sub-perintah update dengan
flag --update-labels. Anda dapat memperbarui label untuk resource
Compute Engine menggunakan perintah gcloud berikut:
- Untuk instance VM, gunakan perintah
gcloud compute instances update. - Untuk snapshot, gunakan perintah
gcloud compute snapshots update. - Untuk image, gunakan perintah
gcloud compute images update. - Untuk disk, gunakan perintah
gcloud compute disks update. - Untuk aturan penerusan, gunakan perintah
gcloud compute forwarding-rules update. - Untuk alamat IP eksternal statis, gunakan
perintah
gcloud beta compute addresses update. - Untuk tunnel VPN, gunakan perintah
gcloud beta compute vpn-tunnels update.
Contoh
gcloud compute disks update example-disk \
--update-labels backend=webserver,media=images
Jika Anda memberikan kunci label yang sudah ada, Google Cloud CLI akan memperbarui kunci yang ada dengan nilai label baru. Jika Anda memberikan kunci baru, alat ini akan menambahkan kunci baru tersebut ke daftar label.
REST
Untuk menambahkan atau memperbarui label, buat permintaan POST ke
metode setLabels resource dengan sidik jari
terbaru dan daftar label lengkap yang akan diterapkan:
- Untuk instance VM, gunakan metode
instances.setLabels(). - Untuk snapshot, gunakan metode
snapshots.setLabels(). - Untuk image, gunakan metode
images.setLabels(). - Untuk disk, gunakan metode
disks.setLabels(). - Untuk aturan penerusan, gunakan metode
forwardingRules.setLabels(). - Untuk alamat IP eksternal statis regional, gunakan
metode
addresses.setLabels()beta. - Untuk alamat IP eksternal statis global, gunakan
metode
globalAddresses.setLabels()beta. - Untuk tunnel VPN, gunakan metode
vpnTunnels.setLabels()beta.
Serupa dengan metadata dan tag, jika resource memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut dalam permintaan, beserta label baru yang ingin ditambahkan.
Misalnya, cuplikan berikut membuat permintaan POST ke instance VM
untuk menetapkan label environment:test dan 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="
}
Melihat label
Anda dapat melihat label untuk resource menggunakan konsol Google Cloud , gcloud CLI, atau Compute Engine API. Untuk melihat label aturan penerusan, gunakan gcloud CLI atau Compute Engine API.
Konsol
Buka halaman resource.
- Untuk instance VM, buka Instance VM.
- Untuk snapshot, buka Snapshot.
- Untuk image, buka Image.
- Untuk disk, buka Disk.
- Untuk alamat IP eksternal statis, buka Alamat IP eksternal.
- Untuk tunnel VPN, buka VPN.
Klik resource untuk melihat detailnya.
Cari Label.
gcloud
Untuk melihat label, gunakan sub-perintah describe. Anda dapat melihat label untuk
resource Compute Engine menggunakan
perintah gcloud berikut:
- Untuk instance VM, gunakan perintah
gcloud compute instances describe. - Untuk snapshot, gunakan perintah
gcloud compute snapshots describe. - Untuk image, gunakan perintah
gcloud compute images describe. - Untuk disk, gunakan perintah
gcloud compute disks describe. - Untuk aturan penerusan, gunakan perintah
gcloud compute forwarding-rules describe. - Untuk alamat IP eksternal statis, gunakan perintah
gcloud beta compute addresses describe. - Untuk tunnel VPN. gunakan perintah
gcloud beta compute vpn-gateways describe.
Contoh
gcloud compute disks describe example-disk
Output berisi label:
... id: '5047929990219134234' kind: compute#disk labelFingerprint: GHZ1Un209U=0 labels: environment: dev department: finance ...
REST
Untuk mengambil label, buat permintaan GET ke resource berikut:
- Untuk instance VM, gunakan metode
instances.get(). - Untuk snapshot, gunakan metode
snapshots.get(). - Untuk image, gunakan metode
images.get(). - Untuk disk, gunakan metode
disks.get(). - Untuk aturan penerusan, gunakan metode
forwardingRules.get(). - Untuk alamat IP eksternal statis regional, gunakan
metode
addresses.get()beta. - Untuk alamat IP eksternal statis global, gunakan
metode
globalAddresses.get()beta. - Untuk tunnel VPN, gunakan metode
vpnTunnels.get()beta.
Misalnya, cuplikan berikut membuat permintaan GET guna mengambil label
untuk instance VM:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ganti kode berikut:
- PROJECT_ID: the project ID
- ZONE: zona VM
- VM_NAME: nama VM
Mendapatkan sidik jari label untuk permintaan API
Saat memperbarui atau menambahkan label di API, Anda perlu memberikan sidik jari label terbaru bersama permintaan Anda untuk mencegah konflik dengan permintaan lain. Sidik jari hanya diperlukan untuk permintaan API; alat Google Cloud console dan Google Cloud CLI tidak memerlukan sidik jari.
Untuk mendapatkan labelsFingerprint terbaru, buat permintaan GET ke resource
berikut:
- Untuk instance VM, gunakan metode
instances.get(). - Untuk snapshot, gunakan metode
snapshots.get(). - Untuk image, gunakan metode
images.get(). - Untuk disk, gunakan metode
disks.get(). - Untuk aturan penerusan, gunakan metode
forwardingRules.get(). - Untuk alamat IP eksternal statis regional, gunakan
metode
addresses.get()beta. - Untuk alamat IP eksternal statis global, gunakan
metode
globalAddresses.get()beta. - Untuk tunnel VPN, gunakan metode
vpnTunnels.get()beta.
Misalnya, cuplikan berikut mendapatkan labelsFingerprint untuk instance VM:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
Responsnya berisi properti 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="
}Menghapus label
Anda dapat menghapus label dari resource menggunakan konsol Google Cloud , gcloud CLI, atau Compute Engine API. Untuk menghapus label aturan penerusan, gunakan gcloud CLI atau Compute Engine API.
Konsol
Buka halaman resource yang ingin Anda hapus labelnya.
- Untuk instance VM, buka Instance VM.
- Untuk snapshot, buka Snapshot.
- Untuk image, buka Image.
- Untuk disk, buka Disk.
- Untuk alamat IP eksternal statis, buka Alamat IP eksternal.
- Untuk tunnel VPN, buka VPN.
Pilih kotak centang di samping resource yang ingin Anda hapus labelnya.
Untuk meluaskan kolom label, klik Tampilkan panel info.
Untuk menghapus label, klik Hapus.
Simpan perubahan Anda.
gcloud
Untuk menambahkan atau mengubah label, gunakan sub-perintah update dengan
flag --remove-labels. Anda dapat menghapus label resource Compute Engine
menggunakan perintah gcloud berikut:
- Untuk instance VM, gunakan perintah
gcloud compute instances update. - Untuk snapshot, gunakan perintah
gcloud compute snapshots update. - Untuk image, gunakan perintah
gcloud compute images update. - Untuk disk, gunakan perintah
gcloud compute disks update. - Untuk aturan penerusan, gunakan perintah
gcloud compute forwarding-rules update. - Untuk alamat IP eksternal statis, gunakan perintah
gcloud beta compute addresses update. - Untuk tunnel VPN, gunakan perintah
gcloud beta compute vpn-tunnels update.
Contoh
gcloud compute disks update example-disk \
--remove-labels backend,media
REST
Untuk menghapus label, buat permintaan POST ke metode setLabels
resource berikut dengan sidik jari
terbaru dan daftar lengkap label yang akan diterapkan:
- Untuk instance VM, gunakan metode
instances.setLabels(). - Untuk snapshot, gunakan metode
snapshots.setLabels(). - Untuk image, gunakan metode
images.setLabels(). - Untuk disk, gunakan metode
disks.setLabels(). - Untuk aturan penerusan, gunakan metode
forwardingRules.setLabels(). - Untuk alamat IP eksternal statis regional, gunakan
metode
addresses.setLabels()beta. - Untuk alamat IP eksternal statis global, gunakan
metode
globalAddresses.setLabels()beta. - Untuk tunnel VPN, gunakan metode
vpnTunnels.setLabels()beta.
Berikan labelsFingerprint saat ini dan daftar label kosong untuk
menghapus semua label, atau berikan daftar label yang ingin Anda pertahankan (membatalkan
label yang ingin dihapus). Misalnya, cuplikan berikut menghapus
semua label dari VM:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels
{
"labels": { },
"labelFingerprint": "42WmSpB8rSM="
}
Memfilter penelusuran menggunakan label
Anda dapat menelusuri resource dan memfilter hasil berdasarkan label menggunakan Google Cloud konsol, gcloud CLI, atau Compute Engine API. Untuk memfilter aturan penerusan berdasarkan label, gunakan gcloud CLI atau Compute Engine API.
Konsol
Buka halaman resource tempat Anda ingin mendapatkan daftar resource yang difilter.
- Untuk instance VM, buka Instance VM.
- Untuk snapshot, buka Snapshot.
- Untuk image, buka Image.
- Untuk disk, buka Disk.
- Untuk alamat IP eksternal statis, buka Alamat IP eksternal.
- Untuk tunnel VPN, buka VPN.
Jika diminta, pilih project Anda, lalu klik Lanjutkan.
Di kotak penelusuran, masukkan kunci, nilai, atau pasangan nilai kunci Anda. Hasil Anda meliputi kecocokan sebagian.
Misalnya, agar hanya menampilkan resource dengan label
env:dev, Anda dapat memasukkan salah satu dari berikut ini:- Masukkan kunci:
env - Masukkan nilai:
dev - Masukkan pasangan nilai kunci:
env:dev
- Masukkan kunci:
gcloud
Untuk memfilter berdasarkan label, gunakan sub-perintah list dari resource berikut
dengan flag --filter:
- Untuk instance VM, gunakan perintah
gcloud compute instances list. - Untuk snapshot, gunakan perintah
gcloud compute snapshots list. - Untuk image, gunakan perintah
gcloud compute images list. - Untuk disk, gunakan perintah
gcloud compute disks list. - Untuk aturan penerusan, gunakan perintah
gcloud compute forwarding-rules list. - Untuk alamat IP eksternal statis, gunakan perintah
gcloud beta compute addresses list. - Untuk tunnel VPN, gunakan perintah
gcloud beta compute vpn-tunnels list.
Nilai flag --filter harus dalam format
labels.KEY=VALUE. Misalnya,
jika ingin memfilter label dengan env sebagai kunci dan dev sebagai
nilai, Anda dapat menjalankan perintah ini:
gcloud compute instances list \
--filter labels.env=dev
Untuk informasi selengkapnya tentang sintaksis filter di gcloud CLI, lihat
dokumentasi gcloud topic filters.
REST
Untuk memfilter resource, buat permintaan GET ke metode list dari
resource berikut dan sertakan kolom filter:
- Untuk instance VM, gunakan metode
instances.list(). - Untuk snapshot, gunakan metode
snapshots.list(). - Untuk image, gunakan metode
images.list(). - Untuk disk, gunakan metode
disks.list(). - Untuk aturan penerusan, gunakan metode
forwardingRules.list(). - Untuk alamat IP eksternal statis regional, gunakan
metode
addresses.list()beta. - Untuk alamat IP eksternal statis global, gunakan
metode
globalAddresses.list()beta. - Untuk tunnel VPN, gunakan metode
vpnTunnels.list()beta.
Misalnya, untuk mencantumkan semua VM dalam project myproject dan zona
us-central1-a dengan label yang memiliki pasangan nilai kunci env:dev, tetapkan
kolom filter ke labels.env:dev dalam permintaan list Anda. Jika Anda menyertakan
kolom filter sebagai parameter string kueri, gunakan parameter value yang dienkode ke URL,
filter=labels.env%3Adev:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?filter=labels.env%3Adev
Untuk informasi selengkapnya, lihat dokumentasi filter di referensi Compute Engine API.
Hubungan antara label dan tag VM
Sebelumnya, label dan tag saling terkait. Misalnya, jika Anda menambahkan
label webserver:test ke VM, Compute Engine menambahkan
tag webserver secara otomatis ke VM.
Sekarang, label dan tag sudah terpisah. Jika Anda membuat label di VM, Compute Engine tidak membuat tag untuk VM. Jika perlu membuat tag di VM, Anda harus membuat tag secara manual.
Untuk mempelajari lebih lanjut tag dan penggunaannya, lihat Ringkasan tag.
Langkah berikutnya
- Pelajari cara membandingkan Tag dan tag jaringan.
- Pelajari cara mengelola tag untuk resource Compute Engine.
- Tinjau parameter kueri
filteruntuk mempelajari cara memfilter.