Mengatur resource menggunakan label


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

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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 dan team:analytics). Anda dapat menggunakan jenis label ini untuk pencatatan atau penganggaran biaya.

  • Label komponen: Misalnya, component:redis, component:frontend, component:ingest, dan component:dashboard.

  • Label lingkungan atau tahap: Misalnya, environment:production dan environment:test.

  • Label status: Misalnya, state:active, state:readytodelete, dan state: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:

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

  1. Buka halaman resource yang ingin dibuat.

  2. Di bagian Labels, klik Add label.

  3. 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:

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.

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

  1. Buka halaman resource yang ingin Anda tambah labelnya.

  2. Pilih kotak centang di samping resource yang ingin diberi label.

  3. Untuk meluaskan kolom label, klik Tampilkan panel info.

  4. Di panel, pilih Label.

  5. Untuk menambahkan label, klik Tambahkan label dan tambahkan pasangan nilai kunci.

  6. Untuk memperbarui label, pilih label yang ada dan ubah nilainya.

  7. 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:

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:

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

  1. Buka halaman resource.

  2. Klik resource untuk melihat detailnya.

  3. Cari Label.

gcloud

Untuk melihat label, gunakan sub-perintah describe. Anda dapat melihat label untuk resource Compute Engine menggunakan perintah gcloud berikut:

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:

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:

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

  1. Buka halaman resource yang ingin Anda hapus labelnya.

  2. Pilih kotak centang di samping resource yang ingin Anda hapus labelnya.

  3. Untuk meluaskan kolom label, klik Tampilkan panel info.

  4. Untuk menghapus label, klik Hapus.

  5. 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:

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:

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

  1. Buka halaman resource tempat Anda ingin mendapatkan daftar resource yang difilter.

  2. Jika diminta, pilih project Anda, lalu klik Lanjutkan.

  3. 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

gcloud

Untuk memfilter berdasarkan label, gunakan sub-perintah list dari resource berikut dengan flag --filter:

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:

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