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.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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

    1. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    2. Set a default region and zone.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.

      Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      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 melampirkan label ke setiap resource, lalu memfilter resource berdasarkan labelnya. Informasi tentang label diteruskan ke sistem penagihan yang memungkinkan Anda 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: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 Anda tidak membuat label unik dalam jumlah besar, seperti untuk stempel waktu atau nilai individual bagi 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:
      • Aturan penerusan yang digunakan dengan Load Balancer Aplikasi internal (aturan penerusan load balancer lainnya tidak didukung)
      • Tunnel VPN (Pratinjau)
      • Alamat IP eksternal statis (Pratinjau)

    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 

    REST

    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 Google Cloud konsol, 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.

    REST

    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 konsol Google Cloud , 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 ... 

    REST

    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; Google Cloud console 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 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 

    REST

    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 Google Cloud konsol, 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 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:

    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