Setiap virtual machine (VM) menyimpan metadata-nya di direktori di server metadata. VM Anda otomatis memiliki akses ke API server metadata ini tanpa otorisasi tambahan. Anda dapat menggunakan metode yang dijelaskan di bagian berikut dalam dokumen ini untuk melihat dan membuat kueri nilai metadata VM:
Jika Anda mengalami error saat mengakses server metadata, tinjau Memecahkan masalah akses server metadata.
Sebelum memulai
- Untuk VM Windows Server, gunakan PowerShell 3.0 atau yang lebih baru.
Sebaiknya gunakan
ctrl+v
untuk menempelkan blok kode yang disalin. - Tinjau dasar-dasar cara metadata VM untuk Compute Engine ditentukan, dikategorikan, dan diatur. Untuk mengetahui informasi selengkapnya, lihat artikel Tentang metadata VM.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di VM atau project -
Jika VM Anda menggunakan akun layanan:
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) di akun layanan atau project -
Untuk melihat metadata project kustom:
compute.projects.get
-
Untuk melihat metadata zona kustom:
compute.instanceSettings.get
-
Untuk melihat metadata kustom untuk instance VM:
compute.instances.get
-
Jika VM Anda menggunakan akun layanan:
iam.serviceAccounts.actAs
- Mengkueri satu entri metadata
- Mengkueri listingan direktori metadata
- Mengkueri perubahan metadata menggunakan fitur
wait-for-change
- Untuk semua VM, Anda dapat membuat kueri server metadata menggunakan
endpoint http (
http://metadata.google.internal/computeMetadata/v1
). Untuk Shielded VM, Anda dapat membuat kueri server metadata menggunakan salah satu dari berikut:
- Endpoint http:
http://metadata.google.internal/computeMetadata/v1
- Endpoint https: (
https://metadata.google.internal/computeMetadata/v1
). Endpoint https ini tersedia di Pratinjau. Untuk melihat format pembuatan kueri endpoint https, lihat Membuat kueri metadata menggunakan endpoint server metadata HTTPS.
- Endpoint http:
- endpoint http:
http://metadata.google.internal/computeMetadata/v1
http://169.254.169.254/computeMetadata/v1
http://metadata.goog/computeMetadata/v1
- Endpoint https (Pratinjau):
Ini adalah satu-satunya URL yang didukung selama tahap pratinjau.https://metadata.google.internal/computeMetadata/v1
- Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri. Untuk membuat kueri instance VM atau entri metadata project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Misalnya, untuk mengkueri boot image untuk VM, jalankan kueri berikut:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/image" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
projects/rhel-cloud/global/images/rhel-8-v20210122
-
Untuk melihat kunci metadata
- Hubungkan ke VM Windows Anda.
Dari VM Windows, gunakan perintah
Invoke-RestMethod
untuk membuat kueri. Untuk membuat kueri instance VM atau entri metadata project, jalankan perintah berikut:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Misalnya, untuk mengkueri boot image untuk VM, jalankan kueri berikut:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/image") $value
Outputnya mirip dengan yang berikut ini:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
-
Untuk melihat kunci metadata
Hubungkan ke VM Linux Anda.
Untuk membuat kueri direktori metadata project atau instance VM, jalankan perintah berikut dari VM Linux Anda:
curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/" -H "Metadata-Flavor: Google"
Ganti
PATH_TO_METADATA_DIRECTORY
dengan jalur ke instance VM atau direktori metadata project yang ingin Anda kueri listingannya secara rekursif. Contoh:-
Untuk melihat entri direktori metadata project
attributes
, jalur yang harus ditentukan adalahproject/attributes/
. -
Untuk melihat entri direktori metadata instance VM
disks
, jalur yang harus ditentukan adalahinstance/disks/
.
Misalnya, pertimbangkan entri
disks/
, yang merupakan direktori disk yang terpasang ke VM. Untuk mengkueri entridisks/
, selesaikan langkah-langkah berikut:Jalankan perintah alat
curl
di direktori disk.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
Outputnya mirip dengan hal berikut ini:
0/ 1/ 2/
Jika ingin mengetahui informasi lebih lanjut tentang direktori
0/
disk, Anda dapat mengkueri URL khusus untuk direktori tersebut:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
device-name index mode type
Kemudian, untuk mengkueri jenis disk (
type
) untuk disk0/
, Anda dapat menjalankan perintah berikut:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
PERSISTENT
-
Untuk melihat entri direktori metadata project
Hubungkan ke VM Windows Anda.
Untuk membuat kueri instance VM atau direktori metadata project, jalankan perintah berikut dari VM Windows Anda:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/") $value
Ganti
PATH_TO_METADATA_DIRECTORY
dengan jalur ke instance VM atau direktori metadata project yang ingin Anda kueri listingannya secara rekursif. Contoh:-
Untuk melihat entri direktori metadata project
attributes
, jalur yang harus ditentukan adalahproject/attributes/
. -
Untuk melihat entri direktori metadata instance VM
disks
, jalur yang harus ditentukan adalahinstance/disks/
.
Misalnya, pertimbangkan entri
disks/
, yang merupakan direktori disk yang terpasang ke VM. Untuk mengkueri entridisks/
, selesaikan langkah-langkah berikut:Gunakan perintah
Invoke-RestMethod
pada direktori disk.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/") $value
Outputnya mirip dengan yang berikut ini:
0/ 1/ 2/
Jika ingin mengetahui informasi lebih lanjut tentang direktori
0/
disk, Anda dapat mengkueri URL khusus untuk direktori tersebut:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/") $value
Outputnya mirip dengan yang berikut ini:
device-name index mode type
Kemudian, untuk mengkueri jenis disk (
type
) untuk disk0/
, Anda dapat menjalankan perintah berikut:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type") $value
Outputnya mirip dengan yang berikut ini:
PERSISTENT
-
Untuk melihat entri direktori metadata project
Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri. Untuk membuat kueri listingan secara rekursif untuk instance VM atau direktori metadata project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true" -H "Metadata-Flavor: Google"
Ganti
PATH_TO_METADATA_DIRECTORY
dengan jalur ke instance VM atau direktori metadata project yang ingin Anda kueri listingannya secara rekursif. Contoh:-
Untuk melihat entri direktori metadata project
attributes
, jalur yang harus ditentukan adalahproject/attributes/
. -
Untuk melihat entri direktori metadata instance VM
disks
, jalur yang harus ditentukan adalahinstance/disks/
.
Misalnya, perintah berikut secara rekursif mengkueri listingan metadata instance untuk direktori
disks/
.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true" -H "Metadata-Flavor: Google"
Outputnya mirip dengan hal berikut ini:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Secara default, konten rekursif ditampilkan dalam format JSON. Jika Anda ingin menampilkan konten ini dalam format teks, tambahkan parameter kueri
alt=text
:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
-
Untuk melihat entri direktori metadata project
Hubungkan ke VM Windows Anda.
Dari VM Windows, gunakan perintah
Invoke-RestMethod
untuk membuat kueri. Untuk membuat kueri listingan secara rekursif untuk instance VM atau direktori metadata project, jalankan perintah berikut:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true") $valueGanti
PATH_TO_METADATA_DIRECTORY
dengan jalur ke instance VM atau direktori metadata project yang ingin Anda kueri listingannya secara rekursif. Contoh:-
Untuk melihat entri direktori metadata project
attributes
, jalur yang harus ditentukan adalahproject/attributes/
. -
Untuk melihat entri direktori metadata instance VM
disks
, jalur yang harus ditentukan adalahinstance/disks/
.
Misalnya, perintah berikut secara rekursif mengkueri listingan metadata instance untuk direktori
disks/
.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true") $value
Outputnya mirip dengan hal berikut ini:
[{"deviceName":"boot","index":0,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-1","index":1,"mode":"READ_WRITE","type":"PERSISTENT"}, {"deviceName":"persistent-disk-2","index":2,"mode":"READ_ONLY","type":"PERSISTENT"}]
Secara default, konten rekursif ditampilkan dalam format JSON. Jika Anda ingin menampilkan konten ini dalam format teks, tambahkan parameter kueri
alt=text
:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text") $value
Outputnya mirip dengan yang berikut ini:
0/device-name boot 0/index 0 0/mode READ_WRITE 0/type PERSISTENT 1/device-name persistent-disk-1 1/index 1 1/mode READ_WRITE 1/type PERSISTENT 2/device-name persistent-disk-1 2/index 2 2/mode READ_ONLY 2/type PERSISTENT
-
Untuk melihat entri direktori metadata project
- Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri. Untuk mengubah format data respons kueri untuk instance VM atau entri metadata project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Ganti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
DATA_FORMAT
: format yang Anda inginkan untuk data respons kueri—misalnya,text
ataujson
.
-
- Hubungkan ke VM Windows Anda.
Dari VM Windows, gunakan perintah
Invoke-RestMethod
untuk membuat kueri. Untuk mengubah format data respons kueri untuk instance VM atau entri metadata project, jalankan perintah berikut:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT") $valueGanti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
DATA_FORMAT
: format yang Anda inginkan untuk data respons kueri—misalnya,text
ataujson
.
-
Anda hanya dapat melakukan permintaan
wait-for-change
di endpoint metadata atau secara berulang pada konten direktori. Anda tidak dapat melakukan permintaanwait-for-change
pada listingan direktori. Jika Anda mencoba melakukannya, server metadata akan menggagalkan permintaan Anda dan menampilkan error 400 Invalid Request.Anda tidak dapat membuat permintaan
wait-for-change
untuk token akun layanan. Jika Anda mencoba membuat permintaanwait-for-change
ke URL token akun layanan, permintaan akan langsung gagal dan menampilkan error 400 Invalid Request.- Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri. Untuk melakukan permintaanwait-for-change
untuk instance VM atau entri metadata project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true" -H "Metadata-Flavor: Google"
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Setelah ada perubahan pada kunci metadata yang ditentukan, kueri akan ditampilkan dengan nilai baru.
-
Untuk melihat kunci metadata
- Hubungkan ke VM Windows Anda.
Dari VM Windows, gunakan perintah
Invoke-RestMethod
untuk membuat kueri. Untuk melakukan permintaanwait-for-change
untuk instance VM atau entri metadata project, jalankan perintah berikut:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true") $value
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Setelah ada perubahan pada kunci metadata yang ditentukan, kueri akan ditampilkan dengan nilai baru.
-
Untuk melihat kunci metadata
- Hubungkan ke VM Linux Anda.
Buat permintaan ke kunci tersebut, lalu cetak header-nya. Untuk melakukannya, gunakan alat
curl
dengan flag-v
. Untuk mendapatkan ETag saat ini untuk instance VM atau entri metadata project, jalankan perintah berikut:curl -v "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Misalnya, perintah berikut mendapatkan nilai ETag saat ini untuk kunci metadata instance
tags
.user@myinst:~$ curl -v "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
Outputnya mirip dengan hal berikut ini:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
-
Untuk melihat kunci metadata
Anda kemudian dapat menggunakan nilai ETag tersebut dengan perintah alat
curl
dalam permintaanwait-for-change
. Untuk menggunakan nilai ETag untuk permintaanwait-for-change
metadata instance atau project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Ganti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
ETAG
: nilai ETag untuk kunci metadata.
Dalam contoh ini, perintah berikut menggunakan nilai ETag untuk kunci
tags
dan kueri untuk entri metadata instance.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e" -H "Metadata-Flavor: Google"
Server metadata sesuai dengan nilai ETag yang ditentukan. Jika nilai tersebut berubah, permintaan akan ditampilkan dengan konten baru kunci metadata Anda.
-
- Hubungkan ke VM Windows Anda.
Buat permintaan ke kunci tersebut, lalu cetak header-nya. Pada Windows, gunakan perintah
Invoke-WebRequest
. Untuk mendapatkan ETag saat ini untuk instance VM atau entri metadata project, jalankan perintah berikut:$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY)
$value.Headers.ETag
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
Misalnya, perintah berikut mendapatkan nilai ETag saat ini untuk kunci metadata instance
tags
.PS C:> $value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/tags)
$value.Headers.ETag
Outputnya mirip dengan hal berikut ini:
* About to connect() to metadata port 80 (#0) * Trying 169.254.169.254... connected * Connected to metadata (169.254.169.254) port 80 (#0) > GET /computeMetadata/v1/instance/tags HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: metadata > Accept: / > < HTTP/1.1 200 OK < Content-Type: application/text < ETag: 411261ca6c9e654e < Date: Wed, 13 Feb 2013 22:43:45 GMT < Server: Metadata Server for VM < Content-Length: 26 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < http-server db-client
-
Untuk melihat kunci metadata
Anda kemudian dapat menggunakan nilai ETag tersebut dalam permintaan
wait-for-change
. Untuk menggunakan nilai ETag untuk permintaanwait-for-change
metadata instance atau project, jalankan perintah berikut:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG") $valueGanti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
ETAG
: nilai ETag untuk kunci metadata.
Dalam contoh ini, perintah berikut menggunakan nilai ETag untuk kunci
tags
dan kueri untuk entri metadata instance.PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e") $valueServer metadata sesuai dengan nilai ETag yang ditentukan. Jika nilai tersebut berubah, permintaan akan ditampilkan dengan konten baru kunci metadata Anda.
-
- Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri. Untuk melakukan permintaanwait-for-change
dengan nilai waktu tunggu untuk instance VM atau entri metadata project, jalankan perintah berikut:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Ganti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
TIMEOUT
: nilai waktu tunggu.
-
- Hubungkan ke VM Windows Anda.
Dari VM Windows, gunakan perintah
Invoke-RestMethod
untuk membuat kueri. Untuk melakukan permintaanwait-for-change
dengan nilai waktu tunggu untuk instance VM atau entri metadata project, jalankan perintah berikut:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT") $valueGanti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
TIMEOUT
: nilai waktu tunggu.
-
Anda harus meminta akses ke pratinjau endpoint server metadata HTTPS.
Setelah project ditambahkan ke daftar yang diizinkan, Anda dapat membuat VM. VM harus memenuhi persyaratan berikut:
- Lingkungan tamu harus berjalan di VM.
- VM harus berupa Shielded VM. Hal ini karena server metadata HTTPS memerlukan penggunaan Unified Extensible Firmware Interface (UEFI) dan Virtual Trusted Platform Module (vTPM) untuk memverifikasi sertifikat.
Hubungkan ke VM Linux Anda.
Dari VM Linux, gunakan alat
curl
untuk membuat kueri dan menentukan sertifikat identitas klien. Secara opsional, Anda juga dapat menentukan root certificate.curl "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" \ -E CLIENT_CERTIFICATE \ [--cacert ROOT_CERTIFICATE] \ -H "Metadata-Flavor: Google"
Ganti kode berikut:
-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
CLIENT_CERTIFICATE
: jalur ke sertifikat identitas klien:/run/google-mds-mtls/client.key
.- Opsional:
ROOT_CERTIFICATE
: jalur ke sertifikat root:/run/google-mds-mtls/root.crt
.
Misalnya, untuk mengkueri image booting untuk VM, jalankan kueri berikut:
user@myinst:~$ curl "https://metadata.google.internal/computeMetadata/v1/instance/image" \ -E /run/google-mds-mtls/client.key \ -H "Metadata-Flavor: Google"
Outputnya mirip dengan hal berikut ini:
projects/rhel-cloud/global/images/rhel-8-v20210122
Jika Anda melihat pesan error, tinjau dokumentasi pemecahan masalah.
-
Hubungkan ke VM Windows Anda.
Dapatkan sertifikat identitas klien menggunakan salah satu perintah berikut:
$cert = Get-PfxCertificate -FilePath "C:\ProgramData\Google\Compute Engine\mds-mtls-client.key.pfx"
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Issuer -like "google.internal" }
Dari VM Windows, gunakan perintah
Invoke-RestMethod
dan tentukan sertifikat identitas klien untuk membuat kueri.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate CLIENT_CERTIFICATE ` -Uri "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Ganti kode berikut:
CLIENT_CERTIFICATE
: jalur ke sertifikat identitas klien di VM. Ini adalah variabel$cert
yang ditetapkan pada langkah sebelumnya.-
Ganti
PATH_TO_METADATA_ENTRY
dengan jalur ke instance VM atau kunci metadata project yang nilainya ingin Anda kueri. Jika kunci berada di sub-direktori direktori instance atau project, pastikan untuk menyertakan sub-direktori juga. Contoh:-
Untuk melihat kunci metadata
project-id
, yang disimpan dalam metadata project, tentukanproject/project-id
. -
Untuk melihat kunci metadata
image
, yang disimpan dalam metadata instance VM, tentukaninstance/image
. -
Untuk melihat
enable-oslogin
yang dapat disimpan di subdirektori atribut metadata project atau instance VM, tentukanproject/attributes/enable-oslogin
atauinstance/attributes/enable-oslogin
, bergantung pada kasus penggunaan Anda.
-
Untuk melihat kunci metadata
Misalnya, untuk mengkueri image booting untuk VM Windows server 2019, jalankan kueri berikut:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate $cert ` -Uri "https://metadata.google.internal/computeMetadata/v1/instance/image") $value
Outputnya mirip dengan hal berikut ini:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
Setiap permintaan yang berisi header
X-Forwarded-For
akan ditolak secara otomatis oleh server metadata. Header ini umumnya menunjukkan bahwa permintaan melalui proxy dan mungkin bukan permintaan yang dibuat oleh pengguna yang diberi otorisasi. Untuk alasan keamanan, semua permintaan tersebut ditolak.Saat Anda menggunakan perintah
curl
untuk mengambil metadata dari server, perhatikan bahwa beberapa karakter yang dienkode tidak didukung di jalur permintaan. Karakter yang dienkode hanya didukung di jalur kueri.Misalnya, permintaan berikut mungkin tidak berfungsi:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/123456789-compute%40/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
Agar permintaan ini berfungsi, Anda harus mengganti karakter terenkode yang tidak didukung di jalur permintaan (
%40
) dengan nilai setara yang diterima (@
).curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/1234567898-compute@/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
Tabel berikut merangkum karakter yang dienkode yang tidak didukung di jalur permintaan.
Karakter yang dienkode Nilai yang diterima %21 !
%24 $
%27 '
%28 (
%29 )
%2A *
%2C ,
%40 @
Di konsol Google Cloud, buka halaman Metadata.
Di halaman Metadata,Anda akan melihat daftar semua entri metadata project kustom untuk project Anda.
PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin melihat metadata zonal.PROJECT_ID
: project ID AndaZONE
: zona tempat Anda ingin melihat metadata zonal.- Di konsol Google Cloud, buka halaman Instance VM.
Klik nama VM yang ingin Anda lihat metadatanya.
Kunci SSH untuk VM ini. Di bagian Keamanan dan akses, lihat kolom Kunci SSH.
Nilai
None
menunjukkan tidak ada kunci SSH yang disimpan di metadata instance.Nilai apa pun lainnya menunjukkan bahwa ada kunci SSH yang disimpan di metadata instance.
Kunci SSH untuk project. Di bagian Keamanan dan akses, lihat kolom Memblokir kunci SSH di seluruh project.
Nilai
On
menunjukkan bahwa nilai kunci metadatablock-project-ssh-keys
adalahTRUE
di metadata instance.Nilai
Off
menunjukkan bahwa nilai kunci metadatablock-project-ssh-keys
adalahFALSE
, atau kunci tidak ditetapkan.
Semua metadata kustom lainnya. Lihat bagian Metadata kustom. Anda akan melihat semua kunci dan nilai metadata kustom, selain metadata kunci SSH.
PROJECT_ID
: project ID Anda.ZONE
: zona tempat VM beradaVM_NAME
: nama VM- Pelajari Metadata VM lebih lanjut.
- Pelajari cara menetapkan metadata kustom.
- Pelajari cara menetapkan dan mengkueri atribut tamu.
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Peran yang diperlukan
Peran dan izin berikut diperlukan untuk melihat metadata kustom dari di luar VM menggunakan konsol Google Cloud, Google Cloud CLI, atau REST. Jika Anda mengkueri metadata secara terprogram dari dalam VM, Anda hanya memerlukan peran dan izin untuk terhubung ke VM.
Untuk mendapatkan izin yang diperlukan guna melihat metadata kustom dari luar VM, minta administrator untuk memberi Anda peran IAM berikut:
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk melihat metadata kustom dari luar VM. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melihat metadata kustom dari luar VM:
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Mengkueri metadata secara terprogram
Anda dapat mengakses semua metadata dengan mengkueri entri nilai metadata secara terprogram dari dalam VM Linux atau Windows. Dari dalam VM, Anda dapat mengkueri nilai metadata secara terprogram dengan salah satu cara berikut menggunakan alat seperti
curl
di Linux atauInvoke-RestMethod
di Windows:Endpoint server metadata
Untuk membuat kueri metadata secara terprogram, dari dalam VM, Anda memiliki endpoint server metadata berikut:
Sebagian besar contoh dalam dokumen ini menggunakan endpoint http. Namun, Anda dapat mengakses semua entri metadata yang sama, baik menggunakan endpoint https maupun http.
Bagian dari permintaan metadata
Tabel berikut merangkum bagian-bagian utama permintaan kueri metadata.
Komponen Deskripsi URL Root Semua nilai metadata didefinisikan sebagai sub-jalur di bawah URL root berikut:
Header permintaan Header ini menunjukkan bahwa permintaan dikirim dengan tujuan mengambil nilai metadata, bukan secara tidak sengaja dari sumber yang tidak aman, dan agar server metadata dapat menampilkan data yang Anda minta. Jika Anda tidak memberikan header ini, server metadata akan menolak permintaan Anda.
Metadata-Flavor: Google
Mengkueri satu entri metadata
Gunakan perintah berikut untuk membuat kueri satu entri metadata.
Linux
Windows
Mengkueri listingan direktori metadata
Gunakan perintah berikut untuk mengkueri listingan direktori metadata. Listingan direktori adalah entri metadata yang berisi kunci metadata lainnya. Setiap entri metadata yang diakhiri dengan garis miring adalah listingan direktori
Linux
Windows
Entri
disks/
adalah direktori disk yang terpasang pada VM. Untuk mengkueri entri disk, selesaikan langkah-langkah berikut:Mengkueri listingan direktori secara berulang
Jika Anda ingin menampilkan semua konten dalam direktori, gunakan parameter kueri
recursive=true
dengan permintaan Anda:Linux
Windows
Memformat output kueri
Secara default, setiap endpoint memiliki format respons yang telah ditentukan. Beberapa endpoint mungkin menampilkan data dalam format JSON secara default, sementara endpoint lainnya mungkin menampilkan data sebagai string. Anda dapat mengganti spesifikasi format data default menggunakan parameter kueri
alt=json
ataualt=text
, yang masing-masing menampilkan data dalam format string JSON atau sebagai representasi teks biasa.Linux
Contoh
Misalnya, kunci
tags
otomatis menampilkan data dalam format JSON. Sebagai gantinya, Anda dapat menampilkan data dalam format teks, dengan menentukan parameter kuerialt=text
.Kueri default
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
["http-server", "db-client", "app-server", "mysql-server"]
Kueri dengan pemformatan
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text" -H "Metadata-Flavor: Google"
Outputnya mirip dengan yang berikut ini:
http-server db-client app-server mysql-server
Windows
Contoh
Misalnya, kunci
tags
otomatis menampilkan data dalam format JSON. Sebagai gantinya, Anda dapat menampilkan data dalam format teks, dengan menentukan parameter kuerialt=text
.Kueri default
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags") $valueOutputnya mirip dengan yang berikut ini:
["http-server", "db-client", "app-server", "mysql-server"]
Kueri dengan pemformatan
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text") $valueOutputnya mirip dengan yang berikut ini:
http-server db-client app-server mysql-server
Mengkueri perubahan metadata menggunakan fitur
wait-for-change
Mengingat bahwa nilai metadata dapat berubah saat VM berjalan, server metadata dapat diberi tahu tentang perubahan metadata menggunakan fitur
wait-for-change
. Dengan opsi ini, permintaan hanya menampilkan output saat metadata yang Anda tentukan telah berubah.Anda dapat menggunakan fitur ini pada metadata kustom atau metadata yang ditentukan server. Jadi, jika ada perubahan pada VM atau project Anda, atau jika seseorang memperbarui entri metadata kustom, Anda dapat bereaksi terhadap perubahan tersebut secara terprogram.
Misalnya, Anda dapat membuat permintaan pada kunci
tags
sehingga permintaan hanya ditampilkan jika konten metadata tag telah berubah. Saat ditampilkan, permintaan akan memberikan nilai baru dari kunci metadata tersebut.Fitur
wait-for-change
juga memungkinkan Anda mencocokkan permintaan dan menyetel waktu tunggu.Saat menggunakan fitur
wait-for-change
, pertimbangkan hal berikut:Untuk membuat permintaan
wait-for-change
, buat kueri kunci metadata dan tambahkan parameter kueri?wait_for_change=true
:Linux
Contoh
Dalam contoh ini, jika permintaan dibuat ke
setInstanceTags method
, permintaan akan ditampilkan dengan nilai baru:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true" -H "Metadata-Flavor: Google"
Outputnya mirip dengan hal berikut ini:
http-server db-client
Anda juga dapat melakukan permintaan
wait-for-change
secara berulang pada konten direktori:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&wait_for_change=true" -H "Metadata-Flavor: Google"
Server metadata menampilkan konten baru jika ada perubahan:
{"foo":"bar","baz":"bat"}
Windows
Contoh
Setelah ada perubahan pada kunci metadata yang ditentukan, kueri akan ditampilkan dengan nilai baru. Dalam contoh ini, jika permintaan dibuat ke
setInstanceTags method
, permintaan tersebut akan ditampilkan dengan nilai baru:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true") $valueOutputnya mirip dengan hal berikut ini:
http-server db-client
Anda juga dapat melakukan permintaan
wait-for-change
secara berulang pada konten direktori:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes?recursive=true&wait_for_change=true") $valueServer metadata menampilkan konten baru jika ada perubahan:
{"foo":"bar","baz":"bat"}
Menggunakan ETag
Saat Anda mengirimkan kueri
wait-for-change
, server metadata akan menampilkan respons jika ada sesuatu yang berubah dalam konten metadata tersebut. Namun, ada kondisi race yang melekat antara update metadata dan permintaanwait-for-change
yang dikeluarkan, jadi sebaiknya miliki cara yang andal untuk mengetahui bahwa Anda mendapatkan nilai metadata terbaru.Untuk mengatasinya, Anda bisa menggunakan parameter kueri
last_etag
yang membandingkan nilai ETag yang Anda berikan dengan nilai ETag yang disimpan di server metadata. Jika nilai ETag sesuai, permintaanwait-for-change
akan diterima. Jika nilai ETag tidak cocok, hal ini menunjukkan bahwa konten metadata telah berubah sejak terakhir kali Anda mengambil nilai ETag, dan server metadata akan segera ditampilkan dengan nilai terbaru ini.VM Linux
Guna mendapatkan nilai ETag saat ini untuk kunci metadata, selesaikan langkah-langkah berikut:
VM Windows
Guna mendapatkan nilai ETag saat ini untuk kunci metadata, selesaikan langkah-langkah berikut:
Python
Contoh Python berikut menunjukkan cara mengamati perubahan di server metadata secara terprogram.
Contoh ini menetapkan ETag awal ke
0
. Server metadata tidak akan menampilkan respons dengan0
sebagai nilai ETag. Jika0
ditentukan sebagai ETag terakhir dalam permintaan, server metadata akan merespons ETag dan nilai saat ini. Tindakan ini akan menghemat sedikit kode yang diperlukan untuk mendapatkan nilai awal dan ETag.Menyetel waktu tunggu
Jika Anda ingin waktu permintaan
wait-for-change
habis setelah beberapa detik tertentu, Anda dapat menyetel parametertimeout_sec
. Parametertimeout_sec
membatasi waktu tunggu permintaan ke jumlah detik yang Anda tentukan, dan saat permintaan mencapai batas tersebut, parameter akan menampilkan konten kunci metadata saat ini.Saat Anda menyetel parameter
timeout_sec
, permintaan akan selalu ditampilkan setelah jumlah detik yang ditentukan, terlepas dari apakah nilai metadata benar-benar berubah atau tidak. Anda hanya dapat menyetel nilai bilangan bulat sebagai waktu tunggu.Linux
Misalnya, perintah berikut melakukan permintaan
wait-for-change
yang ditetapkan ke waktu habis setelah 360 detik:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360" -H "Metadata-Flavor: Google"
Windows
Misalnya, perintah berikut melakukan permintaan
wait-for-change
yang ditetapkan ke waktu habis setelah 360 detik:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360") $valueMembuat kueri metadata menggunakan endpoint server metadata HTTPS
Endpoint server metadata HTTPS (
https://metadata.google.internal/computeMetadata/v1
) memberikan keamanan tambahan untuk transmisi informasi antara server metadata dan VM.Untuk menggunakan endpoint server metadata HTTPS, tinjau persyaratan berikut:
Untuk mengetahui ringkasan cara menangani kueri ke endpoint server metadata HTTPS, lihat Endpoint server metadata HTTPS. Anda dapat menjalankan semua kueri yang sama ke server metadata, baik menggunakan endpoint https maupun http. Namun, untuk memanggil endpoint https, Anda harus menentukan jalur ke sertifikat identitas klien dan dalam beberapa kasus sertifikat root.
Perintah berikut menunjukkan cara membuat kueri server metadata menggunakan endpoint https.
Linux
Windows
Batasan
Kode status
Saat Anda membuat permintaan ke server metadata, server metadata akan menampilkan kode status HTTP standar untuk menunjukkan keberhasilan atau kegagalan. Terkadang, kondisi jaringan atau peristiwa host dapat menyebabkan server metadata gagal memenuhi permintaan Anda dan menampilkan kode error. Dalam hal ini, Anda harus mendesain aplikasi yang fault-tolerant serta dapat mengenali dan menangani error ini.
Untuk mengetahui daftar mendetail kode status yang dapat ditampilkan, lihat Memecahkan masalah kode server.
Melihat metadata kustom untuk VM Anda
Anda dapat melihat nilai metadata kustom untuk VM Compute Engine dengan salah satu cara berikut:
Melihat metadata project
Untuk melihat metadata kustom yang berlaku untuk semua VM di project Anda, gunakan salah satu metode berikut.
Konsol
gcloud
Gunakan perintah
gcloud compute project-info describe
untuk mengkueri metadata project:gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
Outputnya mirip dengan hal berikut ini:
--- fingerprint: HcSFdS_1_1I= items: - key: ssh-keys value: USERNAME:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWZ... kind: compute#metadata
REST
Untuk mengkueri metadata project, buat permintaan
GET
ke metodeproject.get
.Ganti
PROJECT_ID
dengan project ID Anda.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Outputnya mirip dengan hal berikut ini:
"kind": "compute#project", "id": "XXXXXXX", "creationTimestamp": "2018-12-10T08:34:33.616-08:00", "name": "YOUR_PROJECT", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "XXXXXCdg=", "items": [ { "key": "enable-guest-attributes", "value": "TRUE" }, { "key": "enable-os-inventory", "value": "true" }, { "key": "enable-osconfig", "value": "TRUE" }, { "key": "enable-oslogin", "value": "TRUE" }, { "key": "sshKeys", "value": "XXXXX" } ] }, ...
Melihat metadata zonal
Untuk melihat metadata kustom yang berlaku untuk semua instance VM di zona tertentu dalam project, gunakan salah satu metode berikut.
gcloud
Untuk mengkueri metadata zona kustom, gunakan perintah
gcloud compute project-zonal-metadata describe
.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_ID
Ganti kode berikut:
Outputnya mirip dengan hal berikut ini:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
REST
Untuk mengkueri metadata zona kustom, buat permintaan
GET
ke metodeinstanceSettings().get
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Ganti kode berikut:
Outputnya mirip dengan hal berikut ini:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
Melihat metadata instance
Untuk melihat metadata yang berlaku untuk satu VM di project Anda, gunakan salah satu metode berikut.
Konsol
gcloud
Gunakan perintah
gcloud compute instances describe
untuk mengkueri metadata instance:gcloud compute instances describe VM_NAME --flatten="metadata[]"
Ganti
VM_NAME
dengan nama VM yang ingin Anda cari metadatanya.Outputnya mirip dengan hal berikut ini:
--- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata
REST
Untuk mengkueri metadata untuk VM tertentu, kirim permintaan
GET
ke metodeinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Outputnya mirip dengan hal berikut ini:
...... "metadata": { "kind": "compute#metadata", "fingerprint": "XXXXXXVo=", "items": [ { "key": "enable-oslogin", "value": "true" } ] },....
Ganti kode berikut:
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-