Ogni macchina virtuale (VM) archivia i propri metadati in directory su un server di metadati. La VM ha automaticamente accesso a questa API del server di metadati senza alcuna autorizzazione aggiuntiva. Puoi utilizzare i metodi spiegati nelle sezioni seguenti di questo documento per visualizzare ed eseguire query sui valori dei metadati della VM:
- Eseguire query sui metadati in modo programmatico dall'interno di una VM
- Visualizzare i metadati personalizzati per le VM
Se si verificano errori durante l'accesso al server di metadati, consulta la sezione Risoluzione dei problemi di accesso al server di metadati.
Prima di iniziare
- Per le VM Windows Server, utilizza
  PowerShell 3.0 o una versione successiva.
  Ti consigliamo di utilizzare ctrl+vper incollare i blocchi di codice copiati.
- Esamina le nozioni di base su come vengono definiti, classificati e organizzati i metadati delle VM per Compute Engine. Per ulteriori informazioni, consulta Informazioni sui metadati delle VM.
- 
  
  Se non l'hai ancora fatto, configura l'autenticazione.
  L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire
  codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
  Compute Engine selezionando una delle seguenti opzioni:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando: gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata. 
- Set a default region and zone.
 PythonPer utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente. Installa Google Cloud CLI. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata. 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. If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. Per ulteriori informazioni, vedi Set up authentication for a local development environment. RESTPer utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI. Installa Google Cloud CLI. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata. Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud . Ruoli obbligatoriPer visualizzare i metadati personalizzati dall'esterno della VM utilizzando la console Google Cloud , Google Cloud CLI o REST, sono necessari i seguenti ruoli e autorizzazioni. Se esegui query sui metadati in modo programmatico dall'interno della VM, ti servono solo i ruoli e le autorizzazioni per connetterti alla VM. Per ottenere le autorizzazioni necessarie per visualizzare i metadati personalizzati dall'esterno della VM, chiedi all'amministratore di concederti i seguenti ruoli IAM: - 
  
  
    
      Compute Instance Admin (v1)  (roles/compute.instanceAdmin.v1) sulla VM o sul progetto
- 
            Se le VM utilizzano service account:
              
  
  
    
      Utente service account  (roles/iam.serviceAccountUser) sul account di servizio o sul progetto
 Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni. Questi ruoli predefiniti contengono le autorizzazioni necessarie per visualizzare i metadati personalizzati dall'esterno della VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie: Autorizzazioni obbligatoriePer visualizzare i metadati personalizzati dall'esterno della VM sono necessarie le seguenti autorizzazioni: - 
                Per visualizzare i metadati di progetto personalizzati:
                  compute.projects.getsul progetto
- 
                Per visualizzare i metadati di zona personalizzati:
                  compute.instanceSettings.getsulle impostazioni dell'istanza nella zona richiesta del progetto
- 
                Per visualizzare i metadati personalizzati per un'istanza VM:
                  compute.instances.getsulla VM
- 
                Se le VM utilizzano service account:
                  iam.serviceAccounts.actAssui service account o sul progetto
 Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti. Eseguire query sui metadati in modo programmaticoPuoi accedere a tutti i metadati eseguendo query sulle voci dei valori dei metadati in modo programmatico dall'interno di una VM Linux o Windows. All'interno della VM, puoi eseguire query sui valori dei metadati in modo programmatico in uno dei seguenti modi utilizzando strumenti come curlsu Linux oInvoke-RestMethodsu Windows:- Eseguire una query su una singola voce di metadati
- Esegui una query su un elenco di directory di metadati
- Eseguire query sulle modifiche ai metadati utilizzando la funzionalità wait-for-change
 Endpoint del server di metadatiPer eseguire query sui metadati in modo programmatico, all'interno di una VM, hai a disposizione i seguenti endpoint del server di metadati: - Per tutte le VM, puoi eseguire query sul server di metadati utilizzando
l'endpoint HTTP (http://metadata.google.internal/computeMetadata/v1) o il relativo indirizzo IP (169.254.169.254). Utilizza l'indirizzo IPv4 anche con istanze solo IPv6.
- Per le VM schermate, puoi eseguire query sul server di metadati utilizzando uno dei seguenti metodi: - L'endpoint HTTP: http://metadata.google.internal/computeMetadata/v1
- L'endpoint https: (https://metadata.google.internal/computeMetadata/v1). Questo endpoint https è disponibile in anteprima. Per visualizzare il formato per l'esecuzione di query sull'endpoint https, consulta Eseguire query sui metadati utilizzando l'endpoint del server di metadati HTTPS.
 
- L'endpoint HTTP: 
 La maggior parte degli esempi in questo documento utilizza l'endpoint HTTP. Tuttavia, puoi accedere a tutte le stesse voci di metadati indipendentemente dall'endpoint https o http. Componenti di una richiesta di metadatiLa tabella seguente riepiloga le parti principali di una richiesta di query sui metadati. Componenti Descrizione URL di base Tutti i valori dei metadati sono definiti come sottopercorsi sotto i seguenti URL radice: - 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 
 
 Intestazione della richiesta Questa intestazione indica che la richiesta è stata inviata con l'intenzione di recuperare i valori dei metadati, piuttosto che 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 richiesta. Metadata-Flavor: Google Eseguire una query su una singola voce di metadatiUtilizza i seguenti comandi per eseguire query su una singola voce di metadati. Linux- Connettiti alla VM Linux.
- Dalla VM Linux, utilizza lo strumento - curlper eseguire una query. Per eseguire una query per una voce di metadati di un'istanza VM o di un progetto, esegui il seguente comando:- curl "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google" - Sostituisci - PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Ad esempio, per eseguire una query sull'immagine di avvio della VM, esegui la seguente 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 
 Windows- Connettiti alla VM Windows.
- Dalla VM Windows, utilizza il comando - Invoke-RestMethodper eseguire una query. Per eseguire una query per una voce di metadati di un'istanza VM o di un 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Ad esempio, per eseguire una query sull'immagine di avvio della VM, esegui la seguente 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 
 Eseguire query sugli elenchi di directory dei metadatiUtilizza i seguenti comandi per eseguire query sugli elenchi di directory dei metadati. Gli elenchi di directory sono voci dei metadati che contengono altre chiavi dei metadati. Qualsiasi voce di metadati che termina con una barra finale è un elenco di directory Linux- Connettiti alla VM Linux. 
- Per eseguire query su una VM o una directory di metadati del 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_DIRECTORYcon il percorso della directory dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query in modo ricorsivo sugli elenchi. Ad esempio:- 
    Per visualizzare la voce della directory dei metadati del progetto attributes, il percorso da specificare èproject/attributes/.
- 
    Per visualizzare la voce di directory dei metadati dell'istanza VM disks, il percorso da specificare èinstance/disks/.
 - Ad esempio, considera la voce - disks/, che è una directory dei dischi collegati alla VM. Per eseguire query sulla voce- disks/, completa i seguenti passaggi:- Esegui il comando - curlnella 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 interrogare 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 
- Per eseguire una query sul tipo di disco ( - type) per i dischi- 0/, puoi eseguire il seguente 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 del progetto 
 WindowsLa voce disks/è una directory dei dischi collegati alla VM. Per eseguire query sulla voce relativa ai dischi, completa i seguenti passaggi:- Connettiti alla VM Windows. 
- Per eseguire query su una VM o una directory dei metadati del 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_DIRECTORYcon il percorso della directory dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query in modo ricorsivo sugli elenchi. Ad esempio:- 
    Per visualizzare la voce della directory dei metadati del progetto attributes, il percorso da specificare èproject/attributes/.
- 
    Per visualizzare la voce di directory dei metadati dell'istanza VM disks, il percorso da specificare èinstance/disks/.
 - Ad esempio, considera la voce - disks/, che è una directory dei dischi collegati alla VM. Per eseguire query sulla voce- disks/, completa i seguenti passaggi:- Utilizza il comando - Invoke-RestMethodnella 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 sull'URL specifico della 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 
- Per eseguire una query sul tipo di disco ( - type) per i dischi- 0/, puoi eseguire il seguente 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 del progetto 
 Eseguire query in modo ricorsivo negli elenchi di directorySe vuoi restituire tutti i contenuti di una directory, utilizza il parametro di query recursive=truecon la tua richiesta:Linux- Connettiti alla VM Linux. 
- Dalla VM Linux, utilizza lo strumento - curlper eseguire una query. Per eseguire query in modo ricorsivo sugli elenchi per una VM o una directory di metadati del 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_DIRECTORYcon il percorso della directory dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query in modo ricorsivo sugli elenchi. Ad esempio:- 
    Per visualizzare la voce della directory dei metadati del progetto attributes, il percorso da specificare èproject/attributes/.
- 
    Per visualizzare la voce di directory dei metadati dell'istanza VM disks, il percorso da specificare èinstance/disks/.
 - Ad esempio, il seguente comando esegue una query ricorsiva sugli elenchi di metadati dell'istanza 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 ricorsivi vengono restituiti in formato JSON. Se vuoi restituire 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 del progetto 
 Windows- Connettiti alla VM Windows. 
- Dalla VM Windows, utilizza il comando - Invoke-RestMethodper eseguire una query. Per eseguire query in modo ricorsivo sugli elenchi di una directory di metadati di un progetto o di un'istanza VM, esegui questo comando:- $value = (Invoke-RestMethod - -Headers @{'Metadata-Flavor' = 'Google'}-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_DIRECTORY/?recursive=true") $value- Sostituisci - PATH_TO_METADATA_DIRECTORYcon il percorso della directory dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query in modo ricorsivo sugli elenchi. Ad esempio:- 
    Per visualizzare la voce della directory dei metadati del progetto attributes, il percorso da specificare èproject/attributes/.
- 
    Per visualizzare la voce di directory dei metadati dell'istanza VM disks, il percorso da specificare èinstance/disks/.
 - Ad esempio, il seguente comando esegue una query ricorsiva sugli elenchi di metadati dell'istanza 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 ricorsivi vengono restituiti in formato JSON. Se vuoi restituire 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 del progetto 
 Formattare l'output della queryPer impostazione predefinita, ogni endpoint ha un formato predefinito per la risposta. Alcuni endpoint potrebbero restituire i dati in formato JSON per impostazione predefinita, mentre altri potrebbero restituire i dati come stringa. Puoi ignorare la specifica del formato dati predefinito utilizzando i parametri di ricerca alt=jsonoalt=text, che restituiscono i dati in formato stringa JSON o come rappresentazione di testo normale, rispettivamente.Linux- Connettiti alla VM Linux.
- Dalla VM Linux, utilizza lo strumento - curlper eseguire una query. Per modificare il formato dei dati di risposta alla query per una voce di metadati di progetto o istanza VM, 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- DATA_FORMAT: il formato in cui vuoi i dati di risposta alla query, ad esempio- texto- json.
 
- 
 EsempioAd esempio, la chiave tagsrestituisce automaticamente i dati in formato JSON. Puoi restituire i dati in formato di 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- Connettiti alla VM Windows.
- Dalla VM Windows, utilizza il comando - Invoke-RestMethodper eseguire una query. Per modificare il formato dei dati di risposta della query per una voce di metadati di progetto o un'istanza VM, esegui questo comando:- $value = (Invoke-RestMethod - -Headers @{'Metadata-Flavor' = 'Google'}-Uri "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY?alt=DATA_FORMAT") $value- Sostituisci quanto segue: - 
Sostituisci PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- DATA_FORMAT: il formato in cui vuoi i dati di risposta alla query, ad esempio- texto- json.
 
- 
 EsempioAd esempio, la chiave tagsrestituisce automaticamente i dati in formato JSON. Puoi restituire i dati in formato di 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-changePoiché i valori dei metadati possono cambiare mentre la VM è in esecuzione, il server di metadati può ricevere una notifica delle modifiche ai metadati utilizzando la funzionalità wait-for-change. Con questa opzione, la richiesta restituisce un output solo quando i metadati specificati sono stati modificati.Puoi utilizzare questa funzionalità su metadati personalizzati o definiti dal server, in modo che se cambia qualcosa nella tua VM o nel tuo progetto o se qualcuno aggiorna una voce di metadati personalizzati, puoi reagire in modo programmatico alla modifica. Ad esempio, puoi eseguire una richiesta sulla chiave tagsin modo che la richiesta venga restituita solo se i contenuti dei metadati dei tag sono stati modificati. Quando la richiesta viene restituita, fornisce il nuovo valore della chiave dei metadati.La funzionalità wait-for-changeti consente anche di corrispondere alla tua richiesta e impostare timeout.Quando utilizzi la funzionalità wait-for-change, tieni presente quanto segue:- Puoi eseguire una richiesta - wait-for-changesolo su un endpoint dei metadati o in modo ricorsivo sui contenuti di una directory. Non puoi eseguire una richiesta- wait-for-changesu una scheda di directory. Se provi a farlo, il server dei metadati non riesce a elaborare la richiesta e restituisce un errore 400 Richiesta non valida.
- Non puoi eseguire una richiesta - wait-for-changeper un token dell'account di servizio. Se provi a effettuare una richiesta- wait-for-changeall'URL del token dell'account di servizio, la richiesta non va a buon fine immediatamente e restituisce un errore 400 Richiesta non valida.
 Per eseguire una richiesta wait-for-change, esegui una query su una chiave di metadati e aggiungi il parametro di query?wait_for_change=true:Linux- Connettiti alla VM Linux.
- Dalla VM Linux, utilizza lo strumento - curlper eseguire una query. Per eseguire una richiesta- wait-for-changeper una voce di metadati di progetto o un'istanza VM, 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Dopo la modifica della chiave dei metadati specificata, la query viene restituita con il nuovo valore. 
- 
    Per visualizzare la chiave dei metadati 
 Esempi In questo esempio, se viene effettuata una richiesta a setInstanceTags method, la richiesta viene restituita 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-changein modo ricorsivo sui 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"Se vengono apportate modifiche, il server dei metadati restituisce i nuovi contenuti: {"foo":"bar","baz":"bat"}Windows- Connettiti alla VM Windows.
- Dalla VM Windows, utilizza il comando - Invoke-RestMethodper eseguire una query. Per eseguire una richiesta- wait-for-changeper una voce di metadati di un'istanza VM o di un 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") $value- Sostituisci - PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Dopo la modifica della chiave dei metadati specificata, la query viene restituita con il nuovo valore. 
- 
    Per visualizzare la chiave dei metadati 
 Esempi Dopo la modifica della chiave dei metadati specificata, la query viene restituita con il nuovo valore. In questo esempio, se viene effettuata una richiesta a 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-changein modo ricorsivo sui contenuti di una 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") $valueSe vengono apportate modifiche, il server dei metadati restituisce i nuovi contenuti: {"foo":"bar","baz":"bat"}Utilizzare i tag ETagQuando invii una query wait-for-change, il server di metadati restituisce una risposta se i contenuti dei metadati sono stati modificati. Tuttavia, esiste unarace conditione intrinseca tra un aggiornamento dei metadati e l'emissione di una richiestawait-for-change, pertanto è utile disporre di un modo affidabile per sapere di ottenere l'ultimo valore dei metadati.Per facilitare questa operazione, puoi utilizzare il parametro di query last_etag, che confronta il valore ETag che fornisci con il valore ETag salvato sul server di metadati. Se i valori ETag corrispondono, la richiestawait-for-changeviene accettata. Se i valori ETag non corrispondono, significa che i contenuti dei metadati sono cambiati dall'ultima volta che hai recuperato il valore ETag e il server dei metadati restituisce immediatamente questo ultimo valore.VM LinuxPer ottenere il valore ETag corrente per una chiave dei metadati, completa i seguenti passaggi: - Connettiti alla VM Linux.
- Invia una richiesta a questa chiave e stampa le intestazioni. Per farlo, utilizza lo strumento - curlcon il flag- -v. Per ottenere l'ETag corrente per una voce di metadati di un progetto o di un'istanza VM, esegui il seguente comando:- curl -v "http://metadata.google.internal/computeMetadata/v1/PATH_TO_METADATA_ENTRY" -H "Metadata-Flavor: Google" - Sostituisci - PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Ad esempio, il seguente comando recupera il valore ETag corrente per la chiave dei 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 il valore ETag con il comando - curltool nella richiesta- wait-for-change. Per utilizzare il valore ETag per la richiesta- wait-for-changedei metadati di istanza o di progetto, esegui il 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- ETAG: il valore ETag per la chiave dei metadati.
 - In questo esempio, il seguente comando utilizza il valore ETag per la chiave - tagsed esegue una 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 metadati corrisponde al valore ETag specificato e, se questo valore cambia, la richiesta viene restituita con i nuovi contenuti della chiave dei metadati. 
- 
 VM WindowsPer ottenere il valore ETag corrente per una chiave dei metadati, completa i seguenti passaggi: - Connettiti alla VM Windows.
- Invia una richiesta a questa chiave e stampa le intestazioni. In Windows, utilizza il comando - Invoke-WebRequest. Per ottenere l'ETag corrente per una voce di metadati di un progetto o di un'istanza VM, 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 - Ad esempio, il seguente comando recupera il valore ETag corrente per la chiave dei 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 
- Puoi quindi utilizzare il valore ETag nella richiesta - wait-for-change. Per utilizzare il valore ETag per la richiesta- wait-for-changedei metadati di istanza o progetto, esegui il seguente 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") $value- Sostituisci quanto segue: - 
Sostituisci PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- ETAG: il valore ETag per la chiave dei metadati.
 - In questo esempio, il seguente comando utilizza il valore ETag per la chiave - tagsed esegue una 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") $value- Il server metadati corrisponde al valore ETag specificato e, se questo valore cambia, la richiesta viene restituita con i nuovi contenuti della chiave dei metadati. 
- 
 PythonIl seguente esempio Python mostra come monitorare a livello di programmazione il server dei metadati per rilevare le modifiche. Questo esempio imposta l'ETag iniziale su 0. Il server dei metadati non restituisce una risposta con0come valore ETag. Quando0viene specificato come ultimo ETag in una richiesta, il server di metadati risponde con il valore corrente e l'ETag. In questo modo, si risparmia un po' di codice necessario per ottenere il valore iniziale e l'ETag.Impostare timeoutSe vuoi che la richiesta wait-for-changescada dopo un determinato numero di secondi, puoi impostare il parametrotimeout_sec. Il parametrotimeout_seclimita 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 numero di secondi specificato, indipendentemente dal fatto che il valore dei metadati sia effettivamente cambiato. È possibile impostare solo un valore intero per il timeout.Linux- Connettiti alla VM Linux.
- Dalla VM Linux, utilizza lo strumento - curlper eseguire una query. Per eseguire una richiesta- wait-for-changecon un valore di timeout per una voce di metadati di progetto o istanza VM, esegui il seguente 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- TIMEOUT: il valore di timeout.
 
- 
 Ad esempio, il seguente comando esegue una richiesta wait-for-changeche è impostata 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- Connettiti alla VM Windows.
- Dalla VM Windows, utilizza il comando - Invoke-RestMethodper eseguire una query. Per eseguire una richiesta- wait-for-changecon un valore di timeout per una voce dei metadati di progetto o dell'istanza VM, esegui il seguente 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") $value- Sostituisci quanto segue: - 
Sostituisci PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- TIMEOUT: il valore di timeout.
 
- 
 Ad esempio, il seguente comando esegue una richiesta wait-for-changeche è impostata 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") $valueEsegui query sui metadati utilizzando l'endpoint del server di metadati HTTPSL'endpoint del server di metadati HTTPS ( https://metadata.google.internal/computeMetadata/v1) offre una maggiore sicurezza per la trasmissione delle informazioni tra il server di metadati e la VM.Per utilizzare l'endpoint del server di metadati HTTPS, la VM deve soddisfare i seguenti requisiti: - L'ambiente guest deve essere in esecuzione sulla VM.
- La chiave dei metadati disable-https-mds-setupper la VM deve essere impostata suFALSE.
- La VM deve essere una Shielded VM. Questo perché il server di metadati HTTPS richiede l'utilizzo di Unified Extensible Firmware Interface (UEFI) e Virtual Trusted Platform Module (vTPM) per la verifica dei certificati.
 Per una panoramica di come vengono gestite le query all'endpoint del server di metadati HTTPS, consulta Endpoint del server di metadati HTTPS. Puoi eseguire tutte le stesse query sul server di metadati indipendentemente dall'utilizzo dell'endpoint https o http. Tuttavia, per chiamare l'endpoint HTTPS devi specificare il percorso dei certificati di identità client e, in alcuni casi, il certificato radice. I seguenti comandi mostrano come eseguire query sul server di metadati utilizzando l'endpoint https. Linux- Connettiti alla VM Linux. 
- Dalla tua VM Linux, utilizza lo strumento - curlper eseguire una query 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_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
- CLIENT_CERTIFICATE: il percorso del certificato di identità client:- /run/google-mds-mtls/client.key.
- (Facoltativo) ROOT_CERTIFICATE: il percorso del certificato root:/run/google-mds-mtls/root.crt. Devi specificare questo valore se il certificato radice non viene aggiunto all'archivio di attendibilità del sistema operativo.
 - Ad esempio, per fare una query sull'immagine di avvio di una VM, procedi in questo modo: - 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 viene visualizzato un messaggio di errore, consulta la documentazione per la risoluzione dei problemi. 
- 
 Windows- Connettiti alla VM Windows. 
- Recupera 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 il comando - Invoke-RestMethode specifica il certificato di identità 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 del certificato di identità client sulla VM. Questa è la variabile- $certimpostata nel passaggio precedente.
- 
Sostituisci PATH_TO_METADATA_ENTRYcon il percorso della chiave dei metadati dell'istanza VM o del progetto per cui vuoi eseguire query sul valore. Se la chiave si trova in una sottodirectory della directory dell'istanza o del progetto, assicurati di includere anche la sottodirectory. Ad esempio:- 
    Per visualizzare la chiave dei metadati project-id, archiviata nei metadati del progetto, specificaproject/project-id.
- 
    Per visualizzare la chiave di metadati image, archiviata nei metadati dell'istanza VM, specificainstance/image.
- 
    Per visualizzare enable-osloginche possono essere archiviati nella sottodirectory degli attributi dei metadati del progetto o dell'istanza VM, specificaproject/attributes/enable-osloginoinstance/attributes/enable-oslogina seconda del caso d'uso.
 
- 
    Per visualizzare la chiave dei metadati 
 - Ad esempio, per eseguire una query sull'immagine di avvio di 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 
 Limitazioni- Qualsiasi richiesta che contenga l'intestazione - X-Forwarded-Forviene rifiutata 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 queste richieste vengono rifiutate.
- Quando utilizzi il comando - curlper 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 della 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 della richiesta ( - %40) con il valore equivalente accettato (- @).- curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/1234567898-compute@developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google" - La tabella seguente riassume i caratteri codificati non supportati in un percorso della richiesta. - Carattere codificato - Valore accettato - %21 - ! - %24 - $ - %27 - ' - %28 - ( - %29 - ) - %2A - * - %2C - , - %40 - @ 
 Codici di statoQuando invii una richiesta al server dei metadati, questo restituisce codici di stato HTTP standard per indicare l'esito positivo o negativo. A volte, le condizioni di rete o gli eventi host possono causare l'esito negativo della richiesta del server dei metadati e la restituzione di un codice di errore. In questi casi, devi progettare l'applicazione in modo che sia tollerante agli errori e in grado di riconoscere e gestire questi errori. Per un elenco dettagliato dei codici di stato che possono essere restituiti, vedi Risolvere i problemi relativi ai codici del server. Visualizza i metadati personalizzati per le tue VMPuoi visualizzare i valori dei metadati personalizzati per le tue VM Compute Engine in uno dei seguenti modi: - Visualizzare i metadati del progetto
- Visualizzare i metadati di zona
- Visualizzare i metadati dell'istanza
 Visualizzare i metadati del progettoPer visualizzare i metadati personalizzati che si applicano a tutte le VM del progetto, utilizza uno dei seguenti metodi. Console- Nella console Google Cloud , vai alla pagina Metadati - Nella pagina Metadati, viene visualizzato un elenco di tutte le voci dei metadati di progetto personalizzati per il tuo progetto. 
 gcloudUtilizza il comando gcloud compute project-info describeper eseguire query sui metadati del 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 RESTPer eseguire query sui metadati del progetto, crea una richiesta GETal metodoproject.get.Sostituisci PROJECT_IDcon 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" } ] }, ...Visualizzare i metadati di zonaPer visualizzare i metadati personalizzati che si applicano a tutte le istanze VM in una zona specifica di un progetto, utilizza uno dei seguenti metodi. gcloudPer eseguire query sui metadati di zona personalizzati, utilizza il comando gcloud compute project-zonal-metadata describe.gcloud compute project-zonal-metadata describe \ --zone=ZONE \ --project=PROJECT_IDSostituisci quanto segue: - PROJECT_ID: il tuo ID progetto
- ZONE: la zona per cui vuoi visualizzare i metadati di zona.
 L'output è simile al seguente: { "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }RESTPer eseguire query sui metadati di zona personalizzati, invia una richiesta GETal metodoinstanceSettings().get.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings Sostituisci quanto segue: - PROJECT_ID: il tuo ID progetto
- ZONE: la zona per cui vuoi visualizzare i metadati di zona.
 L'output è simile al seguente: { "fingerprint": "VlRIl8dx9vk=", "metadata": { items: { "key-1": "value-1", "key-2": "value-2" } } }Visualizzare i metadati dell'istanzaPer visualizzare i metadati che si applicano a una singola VM nel tuo progetto, utilizza uno dei seguenti metodi. Console- Nella console Google Cloud , vai alla pagina Istanze VM.
- Fai clic sul nome della VM per cui vuoi visualizzare i metadati. - Chiavi SSH per questa VM. Nella sezione Sicurezza e accesso, visualizza il campo Chiavi SSH. - Un valore - Noneindica che non sono presenti chiavi SSH archiviate nei metadati dell'istanza.
- Qualsiasi altro valore indica che nei metadati dell'istanza sono archiviate chiavi SSH. 
 
- Chiavi SSH per un progetto. Nella sezione Sicurezza e accesso, visualizza il campo Blocca chiavi SSH a livello di progetto. - Un valore di - Onindica che il valore della chiave di metadati- block-project-ssh-keysè- TRUEnei metadati dell'istanza.
- Un valore di - Offindica che il valore della chiave dei metadati- block-project-ssh-keysè- FALSEoppure che la chiave non è impostata.
 
- Tutti gli altri metadati personalizzati. Visualizza la sezione Metadati personalizzati. Vedi tutte le chiavi e i valori dei metadati personalizzati, ad eccezione dei metadati delle chiavi SSH. 
 
 gcloudUtilizza il comando gcloud compute instances describeper eseguire query sui metadati dell'istanza:gcloud compute instances describe VM_NAME --flatten="metadata[]" Sostituisci VM_NAMEcon il nome della VM per cui vuoi trovare i metadati.L'output è simile al seguente: --- fingerprint: MTgTJ5m-Cjs= items: - key: enable-oslogin value: 'true' kind: compute#metadata RESTPer eseguire query sui metadati di una VM specifica, invia una richiesta GETal 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: - PROJECT_ID: il tuo ID progetto
- ZONE: la zona in cui si trova la VM
- VM_NAME: il nome della VM
 Passaggi successivi- Scopri di più sui metadati della VM.
- Scopri come impostare metadati personalizzati.
- Scopri come impostare e visualizzare gli attributi guest.
 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 2025-10-19 UTC. -