Setiap entri metadata disimpan di server metadata sebagai key-value pair. Kunci metadata peka huruf besar/kecil. Kunci Anda dapat berupa kunci metadata yang telah ditetapkan atau kunci metadata kustom.
Dengan metadata kustom, Anda dapat membuat dan menggunakan key-value pair metadata Anda sendiri pada setiap VM atau project. Anda dapat menambahkan kunci metadata kustom yang baru, memperbarui nilai kunci yang ada, dan menghapus entri metadata kustom apa pun saat Anda tidak membutuhkannya. Menyetel metadata kustom berguna untuk meneruskan nilai arbitrer ke VM dalam suatu project. Hal ini juga berguna untuk membuat skrip startup dan shutdown.
Dokumen ini memberikan informasi tentang cara melakukan hal berikut:
Sebelum memulai
- Tinjau dasar-dasar cara metadata VM untuk Compute Engine ditentukan, dikategorikan, dan diatur. Untuk mengetahui informasi lebih lanjut, baca artikel Tentang metadata VM.
-
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
-
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menetapkan atau menghapus metadata kustom pada VM, minta administrator untuk memberi Anda peran IAM berikut:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di VM atau project -
Jika VM Anda menggunakan akun layanan:
Service Account User (
roles/iam.serviceAccountUser
) pada akun layanan atau project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menetapkan atau menghapus metadata kustom pada VM. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menetapkan atau menghapus metadata kustom pada VM:
-
Jika VM Anda menggunakan akun layanan:
iam.serviceAccounts.actAs
-
Untuk menambahkan, memperbarui, atau menghapus metadata kustom tingkat project:
-
compute.projects.get
-
compute.projects.setCommonInstanceMetadata
-
-
Untuk menambahkan, memperbarui, atau menghapus metadata zona project kustom:
-
compute.instanceSettings.get
-
compute.instanceSettings.update
-
-
Untuk menambahkan, mengupdate, atau menghapus metadata instance kustom:
-
compute.instances.get
-
compute.instances.setMetadata
-
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Batasan
Compute Engine menerapkan batas total gabungan sebesar 512 KB untuk semua
entri metadata. Batas ukuran maksimum juga diterapkan untuk setiap key
dan value
dengan cara berikut:
- Setiap metadata
key
memiliki batas maksimum 128 byte. Setiap metadata
key
peka huruf besar/kecil.Untuk metadata zona project, Compute Engine tidak mengizinkan Anda membuat dua kunci metadata terpisah dengan string yang sama, meskipun ditulis dalam kasus yang berbeda. Misalnya, jika sudah memiliki kunci metadata zona project yang disebut
project-zonal-metadata-key
, Anda tidak dapat membuat kunci metadata zona project baru sepertiProject-Zonal-Metadata-Key
,PROJECT-ZONAL-METADATA-KEY
, atau variasi lain dari string yang sama.Setiap metadata
value
memiliki batas maksimum 256 KB.Setiap metadata
value
peka huruf besar/kecil, kecuali untuk nilai boolean.
Contohnya, kunci SSH disimpan sebagai metadata kustom pada kunci
ssh-keys
. Jika konten metadata Anda atau value
untuk kunci ini melebihi batas
256 KB, Anda tidak akan dapat menambahkan lebih banyak kunci SSH. Jika Anda mencapai batas ini,
sebaiknya hapus kunci yang tidak digunakan
guna mengosongkan ruang metadata untuk kunci baru.
Selain itu, jika Anda memberikan konten skrip startup atau shutdown secara langsung, konten skrip startup dan shutdown ini mungkin juga disimpan sebagai metadata kustom dan diperhitungkan terhadap batasan ukuran ini. Untuk menghindari hal ini, simpan skrip startup atau shutdown Anda sebagai file yang dihosting di lokasi eksternal, seperti Cloud Storage, dan berikan URL skrip startup saat membuat VM. Dengan cara ini, file ini akan didownload ke VM, bukan disimpan di server metadata.
Nilai boolean
Untuk kolom yang menerima nilai boolean, TRUE
atau FALSE
, nilai berikut
juga dapat digunakan:
Status | Nilai alternatif |
---|---|
TRUE |
Y , Yes , 1 |
FALSE |
N , No , 0 |
Nilai Boolean tidak peka huruf besar/kecil. Misalnya, Anda dapat menggunakan False
, false
,
atau FALSE
untuk menonaktifkan fitur.
Menetapkan metadata kustom pada VM
Bagian ini memberikan informasi tentang cara menambahkan metadata kustom baru, atau memperbarui nilai metadata kustom yang ada, untuk VM Compute Engine Anda dengan salah satu cara berikut:
- Tetapkan metadata kustom di seluruh project untuk menambahkan atau memperbarui metadata project kustom untuk semua VM di project Anda.
- Tetapkan metadata zona project kustom (Pratinjau), untuk menambahkan atau memperbarui metadata project kustom dengan cakupan zona untuk VM dalam project.
- Tetapkan metadata instance kustom, untuk menambahkan atau mengupdate metadata instance kustom untuk VM tertentu.
Menetapkan metadata kustom untuk seluruh project
Anda dapat menambahkan atau memperbarui metadata kustom untuk semua instance dalam suatu project menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST.
Gunakan petunjuk ini untuk menerapkan setelan metadata ke semua VM dalam project.
Misalnya, jika Anda menentukan pasangan metadata baz=bat
di seluruh project,
pasangan metadata tersebut akan otomatis diterapkan ke semua VM dalam project.
Konsol
- Di Konsol Google Cloud, buka halaman Metadata.
- Klik Edit.
- Tambahkan atau edit entri metadata.
- Simpan perubahan Anda.
gcloud
Gunakan
perintah project-info add-metadata
.
gcloud compute project-info add-metadata \ --metadata=KEY=VALUE
Ganti kode berikut:
KEY
: nama kunci metadata AndaVALUE
: nilai yang disimpan untuk kunci ini
Contoh
Misalnya untuk menetapkan dua entri baru foo=bar
dan baz=bat
pada sebuah project, jalankan
perintah berikut:
gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=bat
Secara opsional, Anda dapat menentukan satu atau beberapa file yang akan digunakan
untuk membaca metadata menggunakan flag --metadata-from-file
.
REST
Opsional. Untuk melakukan penguncian optimis, Anda dapat menyediakan sidik jari secara opsional.
Sidik jari adalah string karakter acak yang dihasilkan oleh Compute Engine. Sidik jari akan berubah setelah setiap permintaan, dan jika Anda memberikan sidik jari yang tidak cocok, permintaan Anda akan ditolak.
Jika Anda tidak memberikan sidik jari, pemeriksaan konsistensi tidak akan dilakukan, dan permintaan
projects().setCommonInstanceMetadata
akan berhasil. Perilaku ini berbeda dengan metodeinstances().setMetadata
daninstanceSettings().patch
, yang selalu memerlukan sidik jari.Untuk mendapatkan sidik jari saat ini dari sebuah project, panggil metode
project().get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Outputnya mirip dengan hal berikut ini:
{ "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
Buat permintaan ke metode
projects().setCommonInstanceMetadata
dan tetapkan key-value pair metadata kustom Anda:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
Ganti PROJECT_ID
dengan project ID Anda.
Menetapkan metadata zona project kustom
Anda dapat menambahkan atau memperbarui entri metadata zona project untuk VM Anda dengan salah satu cara berikut:
- Anda dapat menambahkan kunci metadata kustom baru pada tingkat zona project dan menetapkan nilai metadata untuk semua VM yang berada di zona tertentu dalam suatu project.
- Anda dapat memperbarui nilai kunci metadata zona project kustom yang ada untuk semua VM yang berada di zona tertentu dalam suatu project.
- Untuk kunci metadata project yang sudah memiliki nilai lingkup project, Anda dapat mengganti nilai tingkat project tersebut untuk semua VM di zona tertentu dan menentukan VM tersebut untuk menggunakan nilai zona project.
Hal-hal yang perlu diperhatikan sebelum menetapkan metadata zona project kustom
Entri metadata zona project dan project disimpan di direktori project/
yang sama. Jika Anda menetapkan nilai yang berbeda untuk kunci metadata kustom yang sama untuk VM di tingkat project dan di tingkat zona project, nilai metadata zona project untuk kunci tersebut akan lebih diutamakan daripada nilai metadata tingkat project di zona masing-masing.
- Jika Anda menambahkan nilai metadata zona project untuk kunci metadata yang sudah memiliki nilai seluruh project, Compute Engine akan mengganti nilai seluruh project untuk VM di zona yang ditentukan ini dan memperbarui direktori
/project
dengan nilai zona project. - Jika Anda menambahkan nilai metadata tingkat project baru untuk kunci metadata yang sudah memiliki nilai zona project, tidak akan ada perubahan. Compute Engine mempertahankan nilai zona project di direktori
/project
di zona tertentu. - Jika Anda tidak menentukan nilai zona project untuk kunci metadata kustom di zona tertentu, tetapi kunci tersebut memiliki nilai tingkat project, VM Anda akan terus memiliki nilai seluruh project di zona tersebut.
Prosedur
Anda dapat menambahkan atau memperbarui metadata kustom untuk semua instance VM di zona tertentu dalam suatu project menggunakan Google Cloud CLI atau REST.
gcloud
Untuk menambahkan atau memperbarui metadata zona project kustom, gunakan perintah
gcloud beta compute project-zonal-metadata add
.gcloud beta compute project-zonal-metadata add \ --zone=ZONE \ --project=PROJECT_ID \ --metadata=KEY1=VALUE1,KEY2=VALUE2,...
Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin menambahkan atau memperbarui metadata zona project.KEY1
,KEY2
...: kunci metadata zona project kustom yang ingin Anda tambahkan atau perbarui nilainya.VALUE1
,VALUE2
...: nilai metadata zona project yang ingin Anda tetapkan untuk kunci metadata zona project yang sudah ada dan baru. Bergantung pada kunci dan nilai metadata kustom Anda, salah satu hal berikut akan terjadi:Jika kunci metadata kustom yang sesuai adalah kunci seluruh project yang sudah ada, Compute Engine akan mengganti nilai metadata di seluruh project dan menggunakan nilai zona project untuk semua VM di zona yang ditentukan. Semua VM di zona yang ditentukan mewarisi nilai zona project baru. Jika Anda membuat perubahan mendatang pada nilai tingkat project untuk kunci yang sama, perubahan tersebut tidak akan memengaruhi nilai zona project dan VM di zona ini akan terus memiliki nilai zona project sebagai metadata project-nya.
Jika kunci metadata kustom yang sesuai adalah kunci metadata zona project yang sudah ada dan nilai metadata yang ditentukan adalah nilai baru, Compute Engine akan memperbarui nilai zona project untuk kunci yang ada.
Jika kunci metadata kustom yang terkait adalah kunci baru yang bukan bagian dari metadata zona project atau tingkat project yang ada, Compute Engine akan membuat kunci metadata zona project dan menambahkan nilai metadata ini.
Jika kunci metadata kustom yang terkait adalah kunci metadata zona project yang sudah ada dan nilai metadata yang ditentukan sama dengan nilai yang ada, entri metadata zona project tidak akan berubah.
Contoh: Menambahkan entri metadata zona project kustom baru
Misalnya, pertimbangkan project bernama my-project
dengan metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"value-1"
dan"key-2":"value-2"
Untuk menambahkan "key-4":"value-4"
sebagai pasangan metadata zona project kustom baru di zona us-central1-a
, jalankan perintah berikut
gcloud beta compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-a
Contoh: Memperbarui nilai entri metadata zona project kustom yang ada
Pertimbangkan contoh project my-project
yang sama, yang kini memiliki
metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
, dan"key-4":"value-4"
Untuk memperbarui nilai metadata zona project key-1
dan key-4
di zona us-cerntral1-a
dengan nilai baru, jalankan perintah berikut.
gcloud beta compute project-zonal-metadata add \ --metadata=key-1=new-value-1,key-4=new-value-4 \ --project=my-project \ --zone=us-central1-a
Contoh: Mengganti nilai lingkup project untuk kunci metadata dan menggunakan nilai zona project
Pertimbangkan contoh project my-project
yang sama, yang kini memiliki
metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
, dan"key-4":"new-value-4"
Dalam contoh project ini, pertimbangkan key-3
, yang memiliki nilai metadata tingkat project sebesar value-c
. Misalnya Anda ingin menetapkan nilai metadata zona project value-3
untuk kunci ini bagi semua VM di zona us-central1-a
. Saat Anda melakukan operasi, untuk semua VM di zona us-central1-a
, Compute Engine akan mengganti nilai di seluruh project dan menggunakan nilai zona project. VM di semua zona lain dalam project mempertahankan nilai metadata tingkat project atau zona project yang berlaku untuk key-3
.
Untuk mengganti nilai lingkup project untuk key-3
dan menetapkan nilai zona project, jalankan perintah berikut:
gcloud beta compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-a
REST
Dapatkan sidik jari saat ini dan lihat semua key-value pair yang ada untuk project di zona tersebut.
Untuk melakukan penguncian optimis, Anda harus memberikan sidik jari. Sidik jari adalah string karakter acak yang dihasilkan oleh Compute Engine. Sidik jari berubah setiap kali Anda membuat permintaan untuk menambahkan, memperbarui, atau menghapus metadata zona project, dan jika Anda memberikan sidik jari yang tidak cocok, Compute Engine akan menolak permintaan Anda.
Jika Anda tidak memberikan sidik jari, pemeriksaan konsistensi akan dilakukan dan permintaan update Anda tidak akan berhasil. Cara ini berfungsi sehingga hanya satu permintaan yang dapat dibuat dalam satu waktu, sehingga mencegah konflik. Perilaku ini cocok dengan
instances().setMetadata
, yang selalu memerlukan sidik jari.Untuk mendapatkan sidik jari metadata zona project saat ini, buat permintaan
GET
ke metodeinstanceSettings().get
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin menetapkan metadata zona project.
Berikut adalah contoh output untuk permintaan ini:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
Untuk menambahkan atau memperbarui metadata zona project, buat permintaan
PATCH
ke metodeinstanceSettings().patch
. Anda harus memberikan informasi berikut dalam permintaan Anda:Mask pembaruan. Gunakan parameter kueri
update_mask
. Mask update harus berisi kunci metadata untuk hal berikut:- Metadata zona project kustom baru yang ingin Anda tambahkan
- Metadata zona project kustom yang sudah ada yang nilainya ingin Anda perbarui
Anda harus menambahkan string
metadata.items.
sebagai awalan untuk setiap kunci—misalnya,metadata.items.key1,metadata.items.key3
.Dalam isi permintaan, berikan informasi berikut:
- Kunci dan nilai metadata untuk metadata zona project kustom baru yang ingin Anda tambahkan
- Kunci dan nilai metadata untuk metadata zona project kustom yang sudah ada dan ingin Anda perbarui
- Nilai sidik jari saat ini
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { "KEY1": "VALUE1", "KEY2": "VALUE2", ... } } }
Ganti kode berikut:
PROJECT_ID
: ID project.ZONE
: zona tempat Anda ingin menetapkan metadata zona project.PREFIXED_METADATA_KEYS
: daftar kunci metadata untuk hal berikut, dengan setiap kunci diawali dengan stringmetadata.items.
:- Metadata zona project kustom baru yang ingin Anda tambahkan
- Metadata zona project kustom yang sudah ada yang nilainya ingin Anda perbarui
Misalnya, kunci metadata zona project Anda saat ini adalah
key-1
dankey-2
. Jika Anda ingin menambahkan kunci metadata barukey-3
dan juga memperbarui salah satu kunci metadata saat ini,key-1
, maka update mask Anda harus memiliki string berikut:metadata.items.key1,metadata.items.key3
FINGER_PRINT
: nilai sidik jari saat ini.KEY1
,KEY2
...: kunci metadata zona project kustom yang ingin Anda tambahkan atau perbarui nilainya. Tentukan semua kunci metadata zona project kustom yang Anda tentukan di update mask.VALUE1
,VALUE2
...: nilai metadata zona project yang ingin Anda tetapkan untuk kunci metadata zona project yang sudah ada dan baru. Bergantung pada kunci dan nilai metadata kustom Anda, salah satu hal berikut akan terjadi:- Jika kunci metadata kustom yang sesuai adalah kunci seluruh project yang sudah ada, Compute Engine akan mengganti nilai metadata di seluruh project dan menggunakan nilai zona project untuk semua VM di zona yang ditentukan. Semua VM di zona yang ditentukan mewarisi nilai zona project baru. Jika Anda membuat perubahan mendatang pada nilai tingkat project untuk kunci yang sama, pembaruan tersebut tidak akan memengaruhi nilai zona project dan VM di zona ini akan terus memiliki nilai zona project sebagai metadata project-nya.
- Jika kunci metadata kustom yang sesuai adalah kunci metadata zona project yang sudah ada dan nilai metadata yang ditentukan adalah nilai baru, Compute Engine akan memperbarui nilai zona project untuk kunci yang ada.
- Jika kunci metadata kustom yang terkait adalah kunci baru yang bukan bagian dari metadata zona project atau tingkat project yang ada, Compute Engine akan membuat kunci metadata zona project dan menambahkan nilai metadata ini.
- Jika kunci metadata kustom yang terkait adalah kunci metadata zona project yang sudah ada dan nilai metadata yang ditentukan sama dengan nilai yang ada, entri metadata zona project tidak akan berubah.
Contoh: Menambahkan entri metadata zona project kustom baru
Misalnya, pertimbangkan project bernama my-project
dengan metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"value-1"
dan"key-2":"value-2"
Untuk menambahkan "key-4":"value-4"
sebagai pasangan metadata zona project kustom baru di zona us-central1-a
, buat permintaan PATCH
berikut:
PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-4": "value-4" } } }
Contoh: Memperbarui nilai entri metadata zona project kustom yang ada
Pertimbangkan contoh project my-project
yang sama, yang kini memiliki
metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
, dan"key-4":"value-4"
Untuk memperbarui nilai metadata zona project dari key-1
dan key-4
di zona us-cerntral1-a
dengan nilai baru, buat permintaan PATCH
berikut:
PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-1": "new-value-1", "key-4": "new-value-4" } } }
Contoh: Mengganti nilai lingkup project untuk kunci metadata dan menggunakan nilai zona project
Pertimbangkan contoh project my-project
yang sama, yang kini memiliki
metadata kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
, dan"key-4":"new-value-4"
Dalam contoh project ini, pertimbangkan key-3
, yang memiliki nilai metadata tingkat project sebesar value-c
. Misalnya Anda ingin menetapkan nilai metadata zona project value-3
untuk kunci ini bagi semua VM di zona us-central1-a
. Saat Anda melakukan operasi, untuk semua VM di zona us-central1-a
, Compute Engine akan mengganti nilai di seluruh project dan menggunakan nilai zona project. VM di semua zona lain dalam project mempertahankan nilai metadata tingkat project atau zona project yang berlaku untuk key-3
.
Untuk mengganti nilai metadata tingkat project untuk key-3
dan menggunakan nilai zona project kustom value-3
, buat permintaan PATCH
berikut:
PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-3 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-3": "value-3" } } }
Menetapkan metadata instance kustom
Anda dapat menambahkan atau memperbarui metadata kustom untuk satu instance VM menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST.
Anda dapat menyetel metadata instance kustom dengan salah satu cara berikut:
- Untuk VM baru, Anda dapat menambahkan metadata kustom saat VM sedang dibuat.
- Untuk VM yang ada, Anda dapat menambahkan atau memperbarui metadata kustom saat VM berjalan.
Menambahkan metadata instance kustom selama pembuatan VM
Gunakan petunjuk ini untuk menambahkan metadata pada instance VM tertentu pada saat pembuatannya.
Konsol
Di konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Opsi lanjutan, dan lakukan hal berikut:
- Luaskan bagian Pengelolaan.
- Untuk menambahkan beberapa key-value pair untuk metadata kustom Anda, di bagian Metadata, klik Tambahkan item.
Untuk membuat VM, klik Buat.
gcloud
Untuk menetapkan metadata kustom, gunakan
perintah gcloud compute instances create
dengan flag --metadata
.
gcloud compute instances create VM_NAME \ --metadata=KEY=VALUE
Ganti kode berikut:
VM_NAME
: nama VM AndaKEY
: nama kunci metadata AndaVALUE
: nilai yang disimpan untuk kunci ini
Contoh
Misalnya untuk menetapkan kunci baru foo
yang memiliki nilai bar
pada
VM bernama example-instance
, jalankan perintah berikut:
gcloud compute instances create example-instance \ --metadata=foo=bar
REST
Gunakan
metode instances.insert
dan berikan metadata kustom sebagai bagian dari properti metadata
dalam
permintaan Anda:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/ZONE
/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME
", "...": [ { } ], "metadata": { "items": [ { "key": "KEY", "value": "VALUE" } ] }, .. }
Ganti kode berikut:
Menambahkan atau mengupdate metadata instance kustom pada VM yang sudah ada
Gunakan petunjuk ini untuk mengupdate metadata pada instance VM tertentu yang sudah ada.
Konsol
- Di Konsol Google Cloud, buka halaman VM instances.
- Klik instance yang metadatanya ingin Anda perbarui.
- Klik tombol Edit di bagian atas halaman.
- Di bagian Metadata kustom, klik Tambahkan item atau edit entri metadata yang sudah ada.
- Simpan perubahan Anda.
gcloud
Memperbarui metadata VM dengan gcloud CLI adalah tindakan tambahan. Tentukan hanya kunci metadata yang ingin ditambahkan atau diubah. Jika kunci yang Anda berikan sudah ada, nilai untuk kunci tersebut akan diperbarui dengan nilai baru.
Gunakan
perintah instances add-metadata
:
gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUE
Ganti kode berikut:
VM_NAME
: nama VM AndaKEY
: nama kunci metadata AndaVALUE
: nilai yang disimpan untuk kunci ini
Contoh
Jika Anda ingin menambahkan entri foo=bar
, gunakan:
gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Jika Anda ingin mengubah entri foo=bar
menjadi foo=bat
, gunakan:
gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
REST
Dapatkan sidik jari saat ini dan lihat key-value pair yang ada untuk VM. Untuk melakukannya, panggil metode
instances().get
.Sidik jari adalah string karakter acak yang dihasilkan oleh Compute Engine dan digunakan untuk melakukan penguncian optimis. Untuk mengupdate VM, Anda harus memberikan nilai sidik jari yang cocok. Sidik jari berubah setelah setiap permintaan, dan jika Anda memberikan sidik jari yang tidak cocok, permintaan Anda akan ditolak. Ini berfungsi sehingga hanya satu update yang dapat dilakukan dalam satu waktu, sehingga mencegah konflik.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMEGanti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat VM beradaVM_NAME
: nama VM Anda
Outputnya mirip dengan hal berikut ini:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
Buat permintaan ke metode
instances().setMetadata
. Berikan daftar nilai metadata baru dan nilaifingerprint
saat ini.Jika VM memiliki key-value pair yang sudah ada dan ingin dipertahankan, Anda harus menyertakannya dalam permintaan ini dengan key-value pair baru.
Contoh
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "zhma6O1w2l8=", "items": [ { "key": "foo", "value": "bar" }, { "key": "baz", "value": "bat" } ] }Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat VM beradaVM_NAME
: nama VM Anda
Menghapus metadata kustom dari VM
Anda dapat menghapus metadata kustom dari VM Compute Engine dengan salah satu cara berikut:
- Hapus metadata kustom tingkat project, untuk menghapus metadata project yang ditetapkan dengan cakupan project.
- Menghapus metadata zona project kustom (Pratinjau), untuk menghapus metadata project yang ditetapkan dengan cakupan zona dalam project tersebut.
- Hapus metadata instance kustom untuk menghapus metadata VM yang ditetapkan untuk VM tertentu.
Menghapus metadata kustom tingkat project
Anda dapat menghapus metadata kustom tingkat project menggunakan Google Cloud Console atau Google Cloud CLI.
Konsol
- Di Konsol Google Cloud, buka halaman Metadata.
- Klik edit Edit di bagian atas halaman.
- Di bagian Metadata, klik delete Delete item untuk setiap entri metadata yang ingin dihapus.
- Untuk mengonfirmasi perubahan dan menghapus metadata kustom di seluruh project, klik Save.
gcloud
Untuk menghapus metadata kustom di seluruh project, gunakan perintah gcloud compute project-info remove-metadata
.
- Jika Anda ingin menghapus entri metadata kustom untuk kunci tertentu, tentukan kunci tersebut menggunakan flag
--keys
, lalu kecualikan nilai kunci tersebut.
gcloud compute project-info remove-metadata \ --keys=KEY1,KEY2,...
- Jika Anda ingin menghapus semua metadata kustom untuk VM, tentukan flag
--all
.
gcloud compute project-info remove-metadata \ --all
Ganti kode berikut:
KEY1
,KEY2
...: kunci metadata instance kustom yang ingin dihapus.
Menghapus metadata zona project kustom
Anda dapat menghapus metadata zona project kustom menggunakan Google Cloud CLI atau Compute Engine API.
gcloud
Untuk menghapus metadata zona project kustom, gunakan perintah gcloud beta compute project-zonal-metadata remove
dan tentukan semua kunci metadata yang ingin dihapus menggunakan flag --keys
.
gcloud beta compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...
Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin menetapkan metadata zona project.KEY1
,KEY2
...: kunci metadata zona project kustom yang ingin Anda hapus.
Setelah Anda menjalankan perintah, jika salah satu kunci yang ditentukan memiliki nilai metadata di seluruh project, VM di zona tertentu akan mewarisi nilai seluruh project tersebut. Jika kunci metadata hanya ditetapkan pada tingkat zona project dan tidak ada kunci tingkat project yang sesuai, VM akan kehilangan informasi metadata tersebut.
Contoh:
Pertimbangkan contoh project my-project
, yang memiliki metadata project kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
, dan"key-4":"new-value-4"
Untuk menghapus semua metadata zona project untuk zona us-central1-a
, jalankan perintah berikut.
gcloud beta compute project-zonal-metadata remove \ --metadata=key-1,key-2,key-3,key-4 \ --project=my-project \ --zone=us-central1-a
Setelah Anda menjalankan perintah, VM di zona us-central1-a
akan memiliki metadata project kustom berikut:
"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-c"
REST
Dapatkan sidik jari saat ini dan lihat semua key-value pair yang ada untuk project di zona tersebut.
Untuk melakukan penguncian optimis, Anda harus memberikan sidik jari. Sidik jari adalah string karakter acak yang dihasilkan oleh Compute Engine. Sidik jari berubah setiap kali Anda membuat permintaan untuk menambahkan, memperbarui, atau menghapus metadata zona project, dan jika Anda memberikan sidik jari yang tidak cocok, Compute Engine akan menolak permintaan Anda.
Jika Anda tidak memberikan sidik jari, pemeriksaan konsistensi akan dilakukan dan permintaan penghapusan Anda tidak akan berhasil. Cara ini berfungsi sehingga hanya satu permintaan yang dapat dibuat dalam satu waktu, sehingga mencegah konflik. Perilaku ini cocok dengan
instances().setMetadata
, yang selalu memerlukan sidik jari.Untuk mendapatkan sidik jari project saat ini, lakukan panggilan metode
instanceSettings().get
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin menghapus metadata zona project.
Berikut adalah contoh output untuk permintaan ini:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
Untuk menghapus metadata zona project kustom, buat permintaan
PATCH
ke metodeinstanceSettings().patch
dengan mengecualikan kunci metadata yang metadata zonanya ingin Anda hapus dari isi permintaan . Anda harus memberikan hal berikut dalam permintaan Anda:- Mask pembaruan. Gunakan parameter kueri
update_mask
. Mask update harus berisi semua kunci metadata zona project kustom yang metadatanya ingin Anda hapus. Anda harus menambahkan stringmetadata.items.
sebagai awalan untuk setiap kunci—misalnya,metadata.items.key1,metadata.items.key3
. - Dalam isi permintaan, hanya berikan nilai sidik jari saat ini. Mengecualikan semua kunci metadata yang Anda tentukan di mask pembaruan. Jika Anda menyertakan salah satu kunci metadata di mask update dan isi permintaan, Compute Engine tidak akan menghapus metadata zona project untuk kunci tersebut.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { } } }
Ganti kode berikut:
PROJECT_ID
: ID project.ZONE
: zona tempat Anda ingin menghapus metadata zona project.PREFIXED_METADATA_KEYS
: daftar semua kunci metadata zona project kustom yang sudah ada dan ingin Anda hapus, dengan setiap kunci diawali dengan stringmetadata.items.
. Untuk memastikan permintaan penghapusan Anda berhasil, kecualikan kunci metadata ini dari isi permintaan. Jika Anda menyertakan salah satu kunci metadata di mask update dan isi permintaan, Compute Engine tidak akan menghapus metadata zona project untuk kunci tersebut.Misalnya, kunci metadata zona project Anda saat ini adalah
key-1
,key-2
,key-3
, dankey-4
, dan Anda ingin menghapus entri metadata zona project untukkey-1
dankey-2
, maka update mask Anda harus memiliki string berikut:metadata.items.key1,metadata.items.key2
FINGER_PRINT
: nilai sidik jari saat ini.
- Mask pembaruan. Gunakan parameter kueri
Setelah Anda membuat permintaan, jika salah satu kunci yang ditentukan memiliki nilai metadata di seluruh project, VM di zona tertentu akan mewarisi nilai seluruh project tersebut. Jika kunci metadata hanya ditetapkan pada tingkat zona project dan tidak ada kunci tingkat project yang sesuai, VM akan kehilangan informasi metadata tersebut.
Contoh:
Pertimbangkan contoh project my-project
, yang memiliki metadata project kustom berikut:
- Metadata tingkat project:
"key-1":"value-a"
,"key-2":"value-b"
, dan"key-3":"value-c"
- Metadata zona project di zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
, dan"key-4":"new-value-4"
Untuk menghapus metadata zona project untuk key-1
dan key-2
di zona us-central1-a
, buat permintaan PATCH
berikut.
PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-2 { "fingerprint": "FikclA7UBC0=", "metadata": { "items": { } } }
Setelah permintaan ini berhasil, VM di zona us-central1-a
akan memiliki metadata project kustom berikut. VM mewarisi nilai metadata tingkat project untuk key-1
dan key-2
, tetapi mempertahankan nilai zona project untuk key-3
.
"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-3"
Menghapus metadata instance kustom
Anda dapat menghapus metadata instance kustom menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST.
Konsol
- Di Konsol Google Cloud, buka halaman VM instances.
- Di kolom Name, klik nama VM yang metadatanya ingin Anda hapus.
- Klik edit Edit di bagian atas halaman.
- Di bagian Metadata, klik delete Delete item untuk setiap entri metadata yang ingin dihapus.
- Untuk mengonfirmasi perubahan dan menghapus metadata instance kustom, klik Save.
gcloud
Untuk menghapus metadata instance kustom, gunakan
perintah gcloud compute instances remove-metadata
.
- Jika Anda ingin menghapus entri metadata kustom untuk kunci tertentu, tentukan kunci tersebut menggunakan flag
--keys
, lalu kecualikan nilai kunci tersebut.
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --keys=KEY1,KEY2,...
- Jika Anda ingin menghapus semua metadata kustom untuk VM, tentukan flag
--all
.
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --all
Ganti kode berikut:
PROJECT_ID
: project ID Anda.ZONE
: zona VM Anda.VM_NAME
: nama VM AndaKEY1
,KEY2
...: kunci metadata instance kustom yang ingin dihapus.
REST
Dapatkan sidik jari saat ini dan lihat key-value pair yang ada untuk VM. Untuk melakukannya, panggil metode
instances().get
.Sidik jari adalah string karakter acak yang dihasilkan oleh Compute Engine dan digunakan untuk melakukan penguncian optimis. Untuk mengupdate VM, Anda harus memberikan nilai sidik jari yang cocok. Sidik jari berubah setelah setiap permintaan, dan jika Anda memberikan sidik jari yang tidak cocok, permintaan Anda akan ditolak. Ini berfungsi sehingga hanya satu update yang dapat dilakukan dalam satu waktu, sehingga mencegah konflik.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMEGanti kode berikut:
PROJECT_ID
: project ID Anda.ZONE
: zona VM Anda.VM_NAME
: nama VM Anda
Outputnya mirip dengan hal berikut ini:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "key-1", "value": "value-1" } { "key": "key-2", "value": "value-2" } ] }, ... }
Buat permintaan ke metode
instances().setMetadata
. Anda harus menyertakan nilai sidik jari metadata saat ini agar permintaan Anda berhasil.Untuk menghapus semua key-value pair metadata kustom dari VM, di properti
items
, kecualikan kunci metadata yang nilai metadatanya ingin Anda hapus.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "FINGER_PRINT" "items": [ { "key": "KEY1" "value": "VALUE1" } { "key": "KEY2" "value": "VALUE2" } ... ] }Untuk menghapus semua metadata instance kustom pada VM, kecualikan properti
items
sepenuhnya.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": FINGER_PRINT }
Ganti kode berikut:
PROJECT_ID
: project ID Anda.ZONE
: zona VM Anda.VM_NAME
: nama VM AndaFINGER_PRINT
: nilai sidik jari saat ini.KEY1
,KEY2
...: kunci metadata instance kustom yang ingin dihapus.VALUE1
,VALUE2
...: nilai kunci metadata instance kustom yang ingin dihapus.
Langkah selanjutnya
- Pelajari Metadata VM lebih lanjut.
- Pelajari cara melihat dan membuat kueri metadata.
- Pelajari lebih lanjut cara menjalankan skrip startup atau skrip shutdown di server metadata.