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 adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan 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, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Apa itu 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 melampirkan label ke setiap resource, lalu memfilter resource berdasarkan labelnya. Informasi tentang label diteruskan ke sistem penagihan, yang memungkinkan Anda mengelompokkan tagihan menurut 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:research
danteam: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:production
danenvironment: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 jangan membuat label unik dalam jumlah besar, seperti untuk stempel waktu atau nilai individual untuk setiap panggilan API. Masalah dari pendekatan ini adalah ketika nilai sering berubah atau dengan kunci yang mengacaukan katalog, ini akan menyulitkan pemfilteran dan pelaporan resource secara efektif.
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:
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
API
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 Konsol Google Cloud, 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.
API
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 Google Cloud Console, 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 ...
API
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; Konsol Google Cloud dan alat 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 dengan 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
API
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 Konsol Google Cloud, 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 nilainya, 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
.
API
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 VM dan tag jaringan
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 cara membuat tag, lihat Tag jaringan.
Langkah selanjutnya
- Pelajari cara menambahkan tag jaringan.
- Pelajari pemfilteran.