Ogni macchina virtuale (VM) archivia i propri metadati nelle directory su un server metadati. La tua VM ha automaticamente accesso API del server dei metadati senza alcuna autorizzazione aggiuntiva. Puoi utilizzare i metodi descritti nelle seguenti sezioni di questo documento per: visualizza ed esegui query sui valori dei metadati della VM:
- Eseguire query sui metadati a livello di programmazione dall'interno di una VM
- Visualizza i metadati personalizzati per le tue VM
Se si verificano errori durante l'accesso al server dei metadati, esamina Risoluzione dei problemi di accesso al server dei metadati.
Prima di iniziare
- Per le VM Windows Server, utilizza
PowerShell 3.0 o versioni successive.
Ti consigliamo di utilizzare
ctrl+v
per incollare i blocchi di codice copiati. - Rivedi le nozioni di base su come vengono definiti i metadati della VM per Compute Engine. categorizzati e organizzati. Per ulteriori informazioni, vedi Informazioni sui metadati della VM.
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) sulla VM o sul progetto -
Se le VM utilizzano account di servizio:
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio o sul progetto -
Per visualizzare i metadati di progetto personalizzati:
compute.projects.get
-
Per visualizzare i metadati di zona personalizzati:
compute.instanceSettings.get
-
Per visualizzare i metadati personalizzati per un'istanza VM:
compute.instances.get
-
Se le VM utilizzano account di servizio:
iam.serviceAccounts.actAs
- Eseguire query su una singola voce di metadati
- Eseguire query su un elenco di directory di metadati
- Eseguire query sulle modifiche ai metadati utilizzando la funzionalità
wait-for-change
- Per tutte le VM, puoi eseguire query sul server metadati utilizzando
l'endpoint HTTP (
http://metadata.google.internal/computeMetadata/v1
). Per le VM schermate, può eseguire query sul server dei metadati utilizzando uno dei seguenti metodi:
- Endpoint HTTP:
http://metadata.google.internal/computeMetadata/v1
- L'endpoint https: (
https://metadata.google.internal/computeMetadata/v1
). Questo endpoint https è disponibile in Anteprima. Per vedere il formato per l'esecuzione di query sull'endpoint https, consulta Esegui query sui metadati utilizzando l'endpoint del server di metadati 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 (anteprima):
https://metadata.google.internal/computeMetadata/v1
Questo è l'unico URL supportato durante la fase di anteprima.
- Connettiti alla VM Linux.
Dalla VM Linux, utilizza strumento
curl
per creare una query. A per un'istanza VM o una voce di metadati di progetto, esegui questo :curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Ad esempio, per eseguire una query sull'immagine di avvio per la VM, esegui questa query:
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/image" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
projects/rhel-cloud/global/images/rhel-8-v20210122
-
Per visualizzare la chiave dei metadati
- Connettiti alla tua VM Windows.
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
per creare una query. Per eseguire una query per un'istanza VM o una voce di metadati di progetto, esegui questo comando: :$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Ad esempio, per eseguire una query sull'immagine di avvio per la VM, esegui questa query:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/image") $value
L'output è simile al seguente:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
-
Per visualizzare la chiave dei metadati
Connettiti alla VM Linux.
Per eseguire una query su un'istanza VM o una directory di metadati di progetto, dalla VM Linux, esegui questo comando:
curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/" -H "Metadata-Flavor: Google"
Sostituisci
PATH_TO_METADATA_DIRECTORY
con il percorso di l'istanza VM o la directory dei metadati di progetto per cui vuoi eseguire eseguire query sulle schede. Ad esempio:-
Per visualizzare la voce della directory dei metadati di progetto
attributes
, devi il percorso da specificare èproject/attributes/
. -
Per visualizzare la voce della directory dei metadati dell'istanza VM
disks
, il percorso da specificare èinstance/disks/
.
Ad esempio, considera la voce
disks/
, che è una directory di dischi collegato alla VM. Per eseguire una query sulla vocedisks/
, completa la seguenti passaggi:Eseguire lo strumento
curl
nella directory dei dischi.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
0/ 1/ 2/
Se vuoi maggiori informazioni sulla directory
0/
del disco, puoi: interroga l'URL specifico di quella directory:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
device-name index mode type
Quindi per eseguire una query sul tipo di disco (
type
) per i dischi0/
, puoi eseguire questo comando:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
PERSISTENT
-
Per visualizzare la voce della directory dei metadati di progetto
Connettiti alla tua VM Windows.
Per eseguire una query su un'istanza VM o una directory di metadati di progetto, dalla VM Windows, esegui questo comando:
$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/") $value
Sostituisci
PATH_TO_METADATA_DIRECTORY
con il percorso di l'istanza VM o la directory dei metadati di progetto per cui vuoi eseguire eseguire query sulle schede. Ad esempio:-
Per visualizzare la voce della directory dei metadati di progetto
attributes
, devi il percorso da specificare èproject/attributes/
. -
Per visualizzare la voce della directory dei metadati dell'istanza VM
disks
, il percorso da specificare èinstance/disks/
.
Ad esempio, considera la voce
disks/
, che è una directory di dischi collegato alla VM. Per eseguire una query sulla vocedisks/
, completa la seguenti passaggi:Utilizza la Comando
Invoke-RestMethod
nella directory dei dischi.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/") $value
L'output è simile al seguente:
0/ 1/ 2/
Se vuoi maggiori informazioni sulla directory
0/
del disco, puoi eseguire una query URL specifico per la directory:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/") $value
L'output è simile al seguente:
device-name index mode type
Quindi per eseguire una query sul tipo di disco (
type
) per i dischi0/
, puoi eseguire questo comando:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/0/type") $value
L'output è simile al seguente:
PERSISTENT
-
Per visualizzare la voce della directory dei metadati di progetto
Connettiti alla VM Linux.
Dalla VM Linux, utilizza lo strumento
curl
. per eseguire una query. Per eseguire query ricorsivamente sugli elenchi per un'istanza VM o dei metadati di progetto, esegui questo comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true" -H "Metadata-Flavor: Google"
Sostituisci
PATH_TO_METADATA_DIRECTORY
con il percorso di l'istanza VM o la directory dei metadati di progetto per cui vuoi eseguire eseguire query sulle schede. Ad esempio:-
Per visualizzare la voce della directory dei metadati di progetto
attributes
, devi il percorso da specificare èproject/attributes/
. -
Per visualizzare la voce della directory dei metadati dell'istanza VM
disks
, il percorso da specificare èinstance/disks/
.
Ad esempio, il comando seguente esegue query ricorsive sull'istanza di metadati per la directory
disks/
.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
[{"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"}]
Per impostazione predefinita, i contenuti ricorsi vengono restituiti in formato JSON. Se vuoi restituiscono questi contenuti in formato di testo, aggiungi il parametro di query
alt=text
:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true&alt=text" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
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
-
Per visualizzare la voce della directory dei metadati di progetto
Connettiti alla tua VM Windows.
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
per effettuare un query. Per eseguire query ricorsive sugli elenchi per un'istanza VM o un progetto. dei metadati, esegui questo comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true") $valueSostituisci
PATH_TO_METADATA_DIRECTORY
con il percorso di l'istanza VM o la directory dei metadati di progetto per cui vuoi eseguire eseguire query sulle schede. Ad esempio:-
Per visualizzare la voce della directory dei metadati di progetto
attributes
, devi il percorso da specificare èproject/attributes/
. -
Per visualizzare la voce della directory dei metadati dell'istanza VM
disks
, il percorso da specificare èinstance/disks/
.
Ad esempio, il comando seguente esegue query ricorsive sull'istanza di metadati per la directory
disks/
.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/disks/?recursive=true") $value
L'output è simile al seguente:
[{"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"}]
Per impostazione predefinita, i contenuti ricorsi vengono restituiti in formato JSON. Se vuoi restituiscono questi contenuti in formato di testo, aggiungi il parametro di query
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
L'output è simile al seguente:
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
-
Per visualizzare la voce della directory dei metadati di progetto
- Connettiti alla VM Linux.
Dalla VM Linux, utilizza lo strumento
curl
. per eseguire una query. Modificare il formato dei dati di risposta alle query per una VM dell'istanza o dei metadati di progetto, esegui questo comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT" -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
DATA_FORMAT
: il formato in cui vuoi i dati delle risposte alla query, ad esempiotext
ojson
.
-
- Connettiti alla tua VM Windows.
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
per effettuare un query. Per modificare il formato dei dati di risposta alla query per un'istanza VM dei metadati di progetto, esegui questo comando:$value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT") $valueSostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
DATA_FORMAT
: il formato in cui vuoi i dati delle risposte alla query, ad esempiotext
ojson
.
-
Puoi eseguire una richiesta
wait-for-change
solo su un dell'endpoint di metadati o in modo ricorsivo sui contenuti di una directory. Non puoi esegui una richiestawait-for-change
su un elenco di directory. Se provi a farlo, il server dei metadati non riesce a soddisfare la tua richiesta e restituisce un Errore 400 Richiesta non valida.Non puoi eseguire una richiesta
wait-for-change
per un servizio token dell'account. Se provi a inviare una richiestawait-for-change
al servizio l'URL del token dell'account, la richiesta non riesce immediatamente e restituisce un Errore 400 Richiesta non valida.- Connettiti alla VM Linux.
Dalla VM Linux, utilizza lo strumento
curl
. per eseguire una query. Eseguire una richiestawait-for-change
per un'istanza VM. o la voce dei metadati di progetto, esegui questo comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true" -H "Metadata-Flavor: Google"
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Dopo una modifica alla chiave di metadati specificata, la query restituisce con il nuovo valore.
-
Per visualizzare la chiave dei metadati
- Connettiti alla tua VM Windows.
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
per effettuare un query. Eseguire una richiestawait-for-change
per un'istanza VM o un progetto. dei metadati, esegui questo comando:$value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true") $value
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Dopo una modifica alla chiave di metadati specificata, la query restituisce con il nuovo valore.
-
Per visualizzare la chiave dei metadati
- Connettiti alla VM Linux.
Invia una richiesta alla chiave e stampa le intestazioni. A questo scopo, utilizza Strumento
curl
con il flag-v
. Per ottenere l'ETag corrente per un'istanza VM o una voce di metadati di progetto, esegui il seguente comando:curl -v "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google"
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Ad esempio, il comando seguente ottiene il valore ETag corrente per il valore Chiave di metadati dell'istanza
tags
.user@myinst:~$ curl -v "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
* 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
-
Per visualizzare la chiave dei metadati
Puoi quindi utilizzare quel valore ETag con lo strumento
curl
. nella tua richiestawait-for-change
. Per utilizzare il valore ETag perwait-for-change
di istanza o metadati di progetto, esegui seguente comando:curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&last_etag=ETAG" -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
ETAG
: il valore ETag per la chiave dei metadati.
In questo esempio, il comando seguente utilizza il valore ETag per il parametro
tags
chiave e query per la voce dei metadati dell'istanza.user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&last_etag=411261ca6c9e654e" -H "Metadata-Flavor: Google"
Il server di metadati corrisponde al valore ETag specificato e se questo valore modifiche, la richiesta viene restituita con i nuovi contenuti della chiave dei metadati.
-
- Connettiti alla tua VM Windows.
Invia una richiesta alla chiave e stampa le intestazioni. Su Windows, utilizza la Comando
Invoke-WebRequest
. Per ottenere l'ETag corrente per un'istanza VM o una voce di metadati di progetto, esegui il seguente comando:$value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY)
$value.Headers.ETag
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
Ad esempio, il comando seguente ottiene il valore ETag corrente per il valore Chiave di metadati dell'istanza
tags
.PS C:> $value = (Invoke-WebRequest -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri http://metadata.google.internal/computeMetadata/v1/instance/tags)
$value.Headers.ETag
L'output è simile al seguente:
* 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
-
Per visualizzare la chiave dei metadati
Potrai quindi utilizzare quel valore ETag nella richiesta
wait-for-change
. A utilizza il valore ETag per la richiesta di istanzawait-for-change
oppure di progetto, esegui questo comando:$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") $valueSostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
ETAG
: il valore ETag per la chiave dei metadati.
In questo esempio, il comando seguente utilizza il valore ETag per il parametro
tags
chiave e query per la voce dei metadati dell'istanza.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") $valueIl server di metadati corrisponde al valore ETag specificato e se questo valore modifiche, la richiesta viene restituita con i nuovi contenuti della chiave dei metadati.
-
- Connettiti alla VM Linux.
Dalla VM Linux, utilizza lo strumento
curl
. per eseguire una query. Eseguire una richiestawait-for-change
con timeout per un'istanza VM o una voce di metadati di progetto, esegui questo comando: :curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?wait_for_change=true&timeout_sec=TIMEOUT" -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
TIMEOUT
: il valore di timeout.
-
- Connettiti alla tua VM Windows.
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
per creare una query. Eseguire una richiestawait-for-change
con un valore di timeout per una VM. dell'istanza o dei metadati di progetto, esegui questo comando:$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") $valueSostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
TIMEOUT
: il valore di timeout.
-
Devi Richiedere l'accesso all'endpoint del server di metadati HTTPS l'anteprima.
Dopo aver aggiunto il progetto alla lista consentita, puoi creare la VM. La La VM deve soddisfare i seguenti requisiti:
- L'ambiente guest deve essere in esecuzione sulla VM.
- La VM deve essere una Shielded VM. Questo perché il protocollo HTTPS il server di metadati richiede l'utilizzo di Unified Extensible Interfaccia firmware (UEFI) e Virtual Trusted Platform Module (vTPM) per la verifica dei certificati.
Connettiti alla VM Linux.
Dalla VM Linux, utilizza strumento
curl
per creare una query e e specificare il certificato di identità client. Se vuoi, puoi anche specificare il certificato radice.curl "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" \ -E CLIENT_CERTIFICATE \ [--cacert ROOT_CERTIFICATE] \ -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
CLIENT_CERTIFICATE
: il percorso certificato di identità client:/run/google-mds-mtls/client.key
.- Facoltativo:
ROOT_CERTIFICATE
: il percorso certificato radice:/run/google-mds-mtls/root.crt
.
Ad esempio, per eseguire una query sull'immagine di avvio per una VM, esegui questo comando: query:
user@myinst:~$ curl "https://metadata.google.internal/computeMetadata/v1/instance/image" \ -E /run/google-mds-mtls/client.key \ -H "Metadata-Flavor: Google"
L'output è simile al seguente:
projects/rhel-cloud/global/images/rhel-8-v20210122
Se visualizzi un messaggio di errore, consulta documentazione per la risoluzione dei problemi.
-
Connettiti alla tua VM Windows.
Scarica il certificato di identità client utilizzando uno dei seguenti comandi:
$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" }
Dalla VM Windows, utilizza Comando
Invoke-RestMethod
e specifica l'identità del client per eseguire una query.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate CLIENT_CERTIFICATE ` -Uri "https://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY") $value
Sostituisci quanto segue:
CLIENT_CERTIFICATE
: il percorso certificato di identità client sulla VM. Questa è la variabile$cert
impostata nel passaggio precedente.-
Sostituisci
PATH_TO_METADATA_ENTRY
con il percorso di l'istanza VM o la chiave dei metadati di progetto per cui vuoi eseguire la query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati per includere anche la sottodirectory. Ad esempio:-
Per visualizzare la chiave dei metadati
project-id
, archiviata in metadati di progetto, specificaproject/project-id
. -
Per visualizzare la chiave di metadati
image
, archiviata nell'istanza VM metadati, specificainstance/image
. -
Per visualizzare
enable-oslogin
che possono essere archiviati nell' una sottodirectory degli attributi dei metadati di progetto o istanza VM specificareproject/attributes/enable-oslogin
oinstance/attributes/enable-oslogin
a seconda del caso d'uso.
-
Per visualizzare la chiave dei metadati
Ad esempio, per eseguire una query sull'immagine di avvio per una VM Windows Server 2019, esegui la seguente query:
PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} -Certificate $cert ` -Uri "https://metadata.google.internal/computeMetadata/v1/instance/image") $value
L'output è simile al seguente:
projects/windows-cloud/global/images/windows-server-2019-dc-v20210112
Tutte le richieste che contengono l'intestazione
X-Forwarded-For
vengono rifiutate automaticamente dal server dei metadati. Questa intestazione in genere indica che la richiesta è stata inviata tramite proxy e potrebbe non essere una richiesta effettuata da un utente autorizzato. Per motivi di sicurezza, tutte le richieste di questo tipo sono rifiutate.Quando utilizzi il comando
curl
per recuperare i metadati dal server, tieni presente che alcuni caratteri codificati non sono supportati nel percorso della richiesta. I caratteri codificati sono supportati solo nel percorso di query.Ad esempio, la seguente richiesta potrebbe non funzionare:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/123456789-compute%40developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
Affinché questa richiesta funzioni, devi sostituire il carattere codificato non supportato nel percorso di richiesta (
%40
) con il valore accettato equivalente (@
).curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/[email protected]/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"
La seguente tabella riassume i caratteri codificati che non sono supportati in un percorso di richiesta.
Carattere codificato Valore accettato %21 !
%24 $
%27 '
%28 (
%29 )
%2A *
%2C ,
%40 @
Nella console Google Cloud, vai alla pagina Metadati.
Nella pagina Metadati puoi vedere un elenco di tutti i metadati di progetto personalizzati per il tuo progetto.
PROJECT_ID
: il tuo ID progettoZONE
: la zona per la quale vuoi visualizzare metadati di zona.PROJECT_ID
: il tuo ID progettoZONE
: la zona per la quale vuoi visualizzare metadati di zona.- Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome della VM di cui vuoi visualizzare i metadati.
Chiavi SSH per questa VM. Nella sezione Sicurezza e accesso, visualizza il campo Chiavi SSH.
Il valore
None
indica che non ci sono chiavi SSH archiviate nell'istanza metadati.Qualsiasi altro valore indica che sono presenti chiavi SSH archiviate nell'istanza metadati.
Chiavi SSH per un progetto. Nella sezione Sicurezza e accesso, visualizza il campo Blocca chiavi SSH a livello di progetto.
Il valore
On
indica che il valore della chiave dei metadatiblock-project-ssh-keys
èTRUE
nei metadati dell'istanza.Il valore
Off
indica che il valore della chiave dei metadatiblock-project-ssh-keys
èFALSE
o che la chiave non è impostata.
Tutti gli altri metadati personalizzati. Visualizza la sezione Metadati personalizzati. Vedrai tutte le chiavi e i valori dei metadati personalizzati, ad eccezione della chiave SSH metadati.
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM- Scopri di più sui metadati delle VM.
- Scopri come impostare metadati personalizzati.
- Scopri come impostare ed eseguire query sugli attributi guest.
Python
Per utilizzare gli Python esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per visualizzare i metadati personalizzati sono necessari i ruoli e le autorizzazioni seguenti all'esterno della VM utilizzando la console Google Cloud, Google Cloud CLI o REST. Se esegui in modo programmatico query sui metadati dall'interno della VM, solo i ruoli e le autorizzazioni per la connessione alla VM.
Per ottenere le autorizzazioni necessarie per visualizzare i metadati personalizzati dall'esterno della VM, chiedi all'amministratore di concederti seguenti ruoli IAM:
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti le autorizzazioni necessarie per visualizzare i metadati personalizzati dall'esterno della VM. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per visualizzare i metadati personalizzati dall'esterno della VM sono necessarie le seguenti autorizzazioni:
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.
Esegui query sui metadati a livello di programmazione
Puoi accedere a tutti i metadati eseguendo una query sulle voci dei valori dei metadati in modo programmatico da una VM Linux o Windows. Dalla tua VM puoi eseguire query programmatiche sui valori dei metadati in uno dei seguenti modi mediante strumenti come
curl
su Linux oInvoke-RestMethod
su Windows:Endpoint del server di metadati
Per eseguire query sui metadati in modo programmatico, dall'interno di una VM, devi disporre di quanto segue endpoint del server di metadati:
La maggior parte degli esempi in questo documento utilizza l'endpoint http. Tuttavia, puoi accedere tutte le stesse voci di metadati, a prescindere dal fatto che utilizzi l'endpoint https o http.
Parti di una richiesta di metadati
La seguente tabella riassume le parti principali di una richiesta di query sui metadati.
Componenti Descrizione URL di base Tutti i valori dei metadati sono definiti come percorsi secondari i seguenti URL principali:
Intestazione della richiesta Questa intestazione indica che la richiesta è stata inviata con l'intento il recupero di valori dei metadati, anziché involontariamente da un'origine non sicura, e consente al server dei metadati di restituire i dati richiesti. Se non fornisci questa intestazione, il server dei metadati rifiuta la tua richiesta.
Metadata-Flavor: Google
Eseguire query su una singola voce di metadati
Utilizza i comandi seguenti per eseguire query su una singola voce di metadati.
Linux
Windows
Query sulle schede delle directory dei metadati
Usa i comandi seguenti per eseguire query sugli elenchi delle directory dei metadati. Elenco di attività Le schede sono voci di metadati che contengono altre chiavi di metadati. Qualsiasi metadato che termina con una barra finale è un elenco di directory
Linux
Windows
La voce
disks/
è una directory di dischi collegata alla VM. Per eseguire una query sulla voce relativa ai dischi, completa i seguenti passaggi:Esegui query ricorrenti sulle schede delle directory
Se vuoi restituire tutti i contenuti di una directory, utilizza lo
recursive=true
parametro di ricerca con la tua richiesta:Linux
Windows
Formatta l'output delle query
Per impostazione predefinita, ogni endpoint ha un formato predefinito per la risposta. Alcuni endpoint potrebbe restituire dati in formato JSON per impostazione predefinita, mentre altri endpoint potrebbero restituire come stringa. Puoi eseguire l'override della specifica predefinita per il formato dei dati utilizzando i parametri di ricerca
alt=json
oalt=text
, che restituiscono i dati in JSON in formato stringa o come rappresentazione di testo normale.Linux
Esempio
Ad esempio, la chiave
tags
restituisce automaticamente i dati in formato JSON. Puoi restituire dati in formato testo specificando il parametro di queryalt=text
.Query predefinita
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
["http-server", "db-client", "app-server", "mysql-server"]
Query con formattazione
user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
http-server db-client app-server mysql-server
Windows
Esempio
Ad esempio, la chiave
tags
restituisce automaticamente i dati in formato JSON. Puoi restituire dati in formato testo specificando il parametro di queryalt=text
.Query predefinita
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags") $valueL'output è simile al seguente:
["http-server", "db-client", "app-server", "mysql-server"]
Query con formattazione
PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?alt=text") $valueL'output è simile al seguente:
http-server db-client app-server mysql-server
Eseguire query sulle modifiche ai metadati utilizzando la funzionalità
wait-for-change
Dato che i valori dei metadati possono cambiare mentre la VM è in esecuzione, al server di metadati possono essere avvisate delle modifiche apportate ai metadati utilizzando Funzionalità
wait-for-change
. Con questa opzione, la richiesta restituisce solo quando i metadati specificati sono stati modificati.Puoi utilizzare questa funzione sui metadati personalizzati o su quelli definiti dal server. Pertanto, se cambia qualcosa nella VM o nel progetto o se qualcuno aggiorna di metadati, puoi reagire in modo programmatico alla modifica.
Ad esempio, puoi eseguire una sulla chiave
tags
, in modo che venga restituita solo se i contenuti i metadati dei tag sono stati modificati. Quando la richiesta viene restituita, fornisce il nuovo della chiave di metadati.La funzionalità
wait-for-change
ti consente anche di corrispondere alla tua richiesta e impostare timeout.Quando utilizzi la funzionalità
wait-for-change
, considera quanto segue:Per eseguire una richiesta
wait-for-change
, esegui una query su una chiave di metadati e aggiungi il token Parametro di query?wait_for_change=true
:Linux
Esempi
In questo esempio, se viene effettuata una richiesta a
setInstanceTags method
, il valore richiesta restituisce con i nuovi valori:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true" -H "Metadata-Flavor: Google"
L'output è simile al seguente:
http-server db-client
Puoi anche eseguire una richiesta
wait-for-change
in modo ricorsivo contenuti di una directory:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&wait_for_change=true" -H "Metadata-Flavor: Google"
In caso di modifica, il server dei metadati restituisce i nuovi contenuti:
{"foo":"bar","baz":"bat"}
Windows
Esempi
Dopo una modifica alla chiave di metadati specificata, la query restituisce con il nuovo valore. In questo esempio, se viene effettuata una richiesta alla
setInstanceTags method
, la richiesta viene restituita con i nuovi valori:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true") $valueL'output è simile al seguente:
http-server db-client
Puoi anche eseguire una richiesta
wait-for-change
in modo ricorsivo sui contenuti di un directory:PS C:> $value = (Invoke-RestMethod
-Headers @{'Metadata-Flavor' = 'Google'}
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes?recursive=true&wait_for_change=true") $valueIn caso di modifica, il server dei metadati restituisce i nuovi contenuti:
{"foo":"bar","baz":"bat"}
Utilizzare gli ETag
Quando invii una query
wait-for-change
, il server dei metadati restituisce un la risposta se sono state apportate modifiche ai contenuti dei metadati. Tuttavia, esiste una race condition intrinseca tra un aggiornamento dei metadati ewait-for-change
richiesta in fase di invio, pertanto è utile disporre di un modo affidabile che stai ricevendo il valore dei metadati più recente.Per aiutarti, puoi utilizzare il parametro di query
last_etag
, che confronta il valore ETag fornito con il valore ETag salvato sul server dei metadati. Se se i valori dell'ETag corrispondono, la richiestawait-for-change
viene accettata. Se I valori ETag non corrispondono, questo indica che i contenuti dei metadati sono modificato dall'ultima volta che hai recuperato il valore ETag e i metadati restituisce immediatamente l'ultimo valore.VM Linux
Per ottenere il valore ETag corrente per una chiave di metadati, completa quanto segue passaggi:
VM Windows
Per ottenere il valore ETag corrente per una chiave di metadati, completa quanto segue passaggi:
Python
Il seguente esempio Python mostra come osservare in modo programmatico l'oggetto server di metadati per le modifiche.
In questo esempio, l'ETag iniziale è impostato su
0
. Il server dei metadati non restituiscono una risposta con0
come valore ETag. Quando0
è specificato come l'ultimo ETag in una richiesta, il server metadati risponde con il valore corrente e ETag. Così facendo si risparmia una parte del codice necessario per ottenere il valore iniziale ETag.Imposta timeout
Se vuoi che la tua richiesta
wait-for-change
scada dopo un determinato di secondi, puoi impostare il parametrotimeout_sec
.timeout_sec
limita il tempo di attesa della richiesta al numero di secondi specificato, e quando la richiesta raggiunge questo limite, restituisce i contenuti attuali della chiave dei metadati.Quando imposti il parametro
timeout_sec
, la richiesta viene sempre restituita dopo il di secondi specificato, indipendentemente dal fatto che il valore dei metadati abbia effettivamente è cambiato. È possibile impostare solo un valore intero per il timeout.Linux
Ad esempio, il seguente comando esegue una richiesta
wait-for-change
che è impostato per scadere dopo 360 secondi:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/tags?wait_for_change=true&timeout_sec=360" -H "Metadata-Flavor: Google"
Windows
Ad esempio, il seguente comando esegue una richiesta
wait-for-change
che è impostato per scadere dopo 360 secondi: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") $valueCodici di stato
Quando esegui una richiesta
wait-for-change
, il server dei metadati restituisce Codici di stato HTTP per indicare l'esito positivo o negativo. In caso di errori, condizioni di rete possono causare l'esito negativo della richiesta e la restituzione del server dei metadati un codice di errore. In questi casi, devi progettare l'applicazione in modo che a tolleranza di errore e in grado di riconoscere e gestire questi errori.I possibili stati restituiti dal server di metadati sono:
Stato Descrizione HTTP 200
Operazione riuscita. È stato modificato un valore oppure hai raggiunto il valore di timeout_sec
specificato e la richiesta restituito correttamente.Error 400
La tua richiesta non è valida. Correggi la query e riprova a inviare la richiesta. Error 404
Il valore dei metadati specificato non esiste più. Il server dei metadati restituisce questo errore anche se i metadati vengono eliminati mentre sei in attesa di una modifica. Error 503
Si è verificato un errore temporaneo del server o un evento di manutenzione temporaneo. Riprova a inviare la richiesta. Query sui metadati utilizzando l'endpoint del server di metadati HTTPS
L'endpoint del server di metadati HTTPS (
https://metadata.google.internal/computeMetadata/v1
) fornisce la sicurezza per la trasmissione delle informazioni tra il server metadati e la VM.Per utilizzare l'endpoint del server di metadati HTTPS, esamina quanto segue requisiti:
Per una panoramica di come vengono eseguite le query all'endpoint del server di metadati HTTPS gestiti, consulta Endpoint del server di metadati HTTPS. Puoi eseguire le stesse query sul server dei metadati indipendentemente dal fatto che utilizzi https o l'endpoint http. Tuttavia, per chiamare l'endpoint https devi specificare il percorso dei certificati di identità client e, in alcuni casi, certificato radice.
I comandi seguenti mostrano come eseguire query sul server dei metadati utilizzando il metodo https.
Linux
Windows
Limitazioni
Visualizza i metadati personalizzati per le tue VM
Puoi visualizzare i valori dei metadati personalizzati per le tue VM di Compute Engine in uno dei nei seguenti modi:
Visualizza i metadati di progetto
Per visualizzare i metadati personalizzati che si applicano a tutte le VM nel progetto, utilizza una uno dei seguenti metodi.
Console
gcloud
Utilizza la Comando
gcloud compute project-info describe
per eseguire query sui metadati di progetto:gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
L'output è simile al seguente:
--- fingerprint: HcSFdS_1_1I= items: - key: ssh-keys value: USERNAME:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWZ... kind: compute#metadata
REST
Per eseguire query sui metadati di progetto, crea una richiesta
GET
al Metodoproject.get
.Sostituisci
PROJECT_ID
con l'ID progetto.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
L'output è simile al seguente:
"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" } ] }, ...
Visualizza metadati di zona
Per visualizzare i metadati personalizzati che si applicano a tutte le istanze VM in una zona specifica in un progetto, usa uno dei seguenti metodi.
gcloud
Per eseguire query sui metadati di zona personalizzati, utilizza Comando
gcloud compute project-zonal-metadata describe
.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_ID
Sostituisci quanto segue:
L'output è simile al seguente:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
REST
Per eseguire query sui metadati di zona personalizzati, effettua una richiesta
GET
alla MetodoinstanceSettings().get
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Sostituisci quanto segue:
L'output è simile al seguente:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }
Visualizza i metadati dell'istanza
Per visualizzare i metadati che si applicano a una singola VM nel tuo progetto, utilizza uno dei utilizzando i seguenti metodi.
Console
gcloud
Utilizza la Comando
gcloud compute instances describe
per eseguire query sui metadati dell'istanza:gcloud compute instances describe VM_NAME --flatten="metadata[]"
Sostituisci
VM_NAME
con il nome della VM che vuoi trovare i metadati.L'output è simile al seguente:
--- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata
REST
Per eseguire query sui metadati per una VM specifica, invia una richiesta
GET
alla Metodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
L'output è simile al seguente:
...... "metadata": { "kind": "compute#metadata", "fingerprint": "XXXXXXVo=", "items": [ { "key": "enable-oslogin", "value": "true" } ] },....
Sostituisci quanto segue:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-09-19 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -