Informazioni sui metadati della VM

Ogni istanza di macchina virtuale (VM) archivia i propri metadati su un server metadati. La tua VM ha automaticamente accesso all'API del server metadati senza alcuna autorizzazione aggiuntiva. I metadati vengono archiviati come coppie chiave-valore.

Questo documento fornisce una panoramica sui metadati delle VM e spiega i tipi e le proprietà dei metadati.

Utilizzi dei metadati della VM

Le seguenti sezioni descrivono alcuni scenari in cui è possibile utilizzare le voci di metadati per gestire le VM.

Script di avvio e chiusura

Il server metadati è particolarmente utile se utilizzato in combinazione con gli script di avvio e chiusura, perché puoi utilizzare il server metadati per ricevere informazioni univoche su una VM in modo programmatico, senza autorizzazioni aggiuntive.

Ad esempio, puoi scrivere uno script di avvio che recupera la coppia chiave-valore dei metadati per l'IP esterno di una VM e utilizzare questo IP nello script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse su ogni VM, puoi riutilizzare il tuo script senza doverlo aggiornare per ogni VM. Questo consente di creare codice meno precario per le tue applicazioni.

Manutenzione host

Il server di metadati fornisce informazioni sull'opzione di pianificazione di una VM tramite la voce della directory di metadati scheduling/ e l'attributo maintenance-event. Puoi utilizzare questi valori dei metadati per ricevere una notifica quando sta per verificarsi un evento di manutenzione, in modo da poter preparare l'ambiente per l'evento. Per maggiori informazioni, consulta Ricevere notifiche sulla migrazione live.

Attributi ospite

Gli attributi guest sono un tipo specifico di metadati personalizzati in cui le applicazioni possono scrivere durante l'esecuzione sulle VM. Utilizza gli attributi guest solo per i casi d'uso che richiedono piccole quantità di dati che non cambiano di frequente. Per ulteriori informazioni sugli attributi guest, consulta Impostare ed eseguire query sugli attributi guest.

Considerazioni sulla sicurezza dei metadati

Quando effettui una richiesta per ottenere informazioni dal server dei metadati, la richiesta e la successiva risposta dei metadati non lasciano mai l'host fisico su cui è in esecuzione la VM.

Tuttavia, qualsiasi processo in grado di eseguire una query sull'URL dei metadati, ha accesso a tutti i valori nel server dei metadati. Sono inclusi i valori dei metadati personalizzati che scrivi sul server. Google consiglia di prestare attenzione quando scrivi valori sensibili nel server dei metadati o quando esegui processi di terze parti.

Chiavi dei metadati predefinite e personalizzate

Ogni voce di metadati è archiviata sul server dei metadati come coppie chiave-valore. Le chiavi dei metadati sono sensibili alle maiuscole. Le chiavi possono essere predefinite o personalizzate.

Chiavi dei metadati predefinite

Le chiavi dei metadati predefinite sono chiavi di metadati create da Compute Engine. Quando crei una VM, Compute Engine imposta automaticamente i valori dei metadati per alcune di queste chiavi sulla VM, ad esempio l'ID istanza VM o l'ID progetto. Per le chiavi predefinite in cui Compute Engine non imposta automaticamente un valore, puoi scegliere da un insieme di valori disponibili a seconda della configurazione di sistema. Ad esempio, per abilitare OS Login per una VM, puoi impostare il valore della chiave predefinita enable-oslogin su TRUE per quella VM. Per disabilitare OS Login per la VM, puoi aggiornare il valore della chiave in FALSE. Puoi aggiornare solo i valori per queste chiavi, ma non per le chiavi stesse.

Per ulteriori informazioni sulle chiavi dei metadati predefinite e per un elenco di queste chiavi, consulta Chiavi dei metadati predefinite.

Chiavi dei metadati personalizzate

I metadati personalizzati consentono di creare e utilizzare coppie chiave-valore di metadati su una singola VM o un singolo progetto. Puoi aggiungere nuove chiavi di metadati personalizzate, aggiornare i valori delle chiavi esistenti e rimuovere eventuali voci di metadati personalizzate quando non ti servono. L'impostazione di metadati personalizzati è utile per trasferire valori arbitrari alle VM in un progetto. È utile anche per creare script di avvio e arresto.

Per scoprire come aggiungere, aggiornare o rimuovere i metadati personalizzati per le tue VM, consulta Configurare i metadati personalizzati.

Tipi di metadati

Le voci di metadati delle VM possono fornire informazioni specifiche per una singola VM o un progetto. I metadati sono suddivisi in metadati di progetto e istanza, in base al tipo di informazioni che forniscono.

Metadati di progetto

I metadati del progetto forniscono informazioni sul progetto. I metadati del progetto sono ulteriormente suddivisi nei seguenti tipi, a seconda dell'ambito definito per i metadati del progetto:

  • I metadati a livello di progetto sono metadati di progetto che definisci nell'ambito di un progetto. Questi metadati vengono impostati a livello di progetto e i metadati vengono propagati a tutte le VM nel progetto.

    Puoi utilizzare chiavi di metadati sia predefinite che personalizzate per impostare metadati a livello di progetto. Scopri di più sulle chiavi predefinite dei metadati di progetto e su come impostare metadati personalizzati a livello di progetto.

  • I metadati di zona del progetto (anteprima) sono metadati di progetto che definisci con un ambito a livello di zona all'interno del progetto. I metadati che imposti si propagano solo alle VM nella zona configurata in quel progetto. Il progetto di metadati a livello di zona garantisce l'isolamento dei guasti e una maggiore affidabilità. Puoi anche utilizzare i metadati di zona del progetto per sostituire i valori a livello di progetto per qualsiasi chiave esistente e utilizzare valori specifici della zona.

    Compute Engine non fornisce chiavi predefinite per i metadati di zona del progetto. Devi creare chiavi di metadati di zona del progetto personalizzate. Scopri di più su come impostare metadati di progetto personalizzati a livello di zona.

Metadati dell'istanza

I metadati dell'istanza forniscono informazioni su un'istanza VM specifica. I metadati dell'istanza vengono impostati separatamente per ogni singola istanza VM.

Puoi utilizzare chiavi di metadati predefinite e personalizzate per impostare i metadati dell'istanza. Scopri di più sulle chiavi dei metadati delle istanze predefinite e su come impostare i metadati delle istanze personalizzate.

Come sono organizzati i metadati

Compute Engine archivia e gestisce le chiavi e i valori dei metadati per le VM e i progetti negli elenchi di directory. A seconda del tipo di metadati, Compute Engine archivia le voci dei metadati in una delle seguenti directory:

Tipo di metadati Directory
  • Metadati a livello di progetto
  • Metadati del progetto a livello di zona

http://metadata.google.internal/computeMetadata/v1/project/
Metadati dell'istanza

http://metadata.google.internal/computeMetadata/v1/instance/

Ogni directory archivia le voci dei metadati sotto forma di coppie chiave-valore. Alcune voci di metadati sono anche directory che contengono altre chiavi di metadati. Le voci di metadati che fungono da directory sono contrassegnate da una barra finale (/) nel nome della chiave dei metadati. Ad esempio, /project/attributes/ è una directory nella directory project/ che contiene altre chiavi di metadati. Per creare un elenco di directory dei metadati personalizzato, devi utilizzare una barra finale (/) nel nome della chiave dei metadati quando crei la voce di metadati personalizzata.

Le voci di metadati a livello di zona del progetto e del progetto sono archiviate nella stessa directory project/. Se imposti valori diversi per le stesse chiavi dei metadati personalizzate per le VM a livello di progetto e a livello di zona del progetto, i valori dei metadati di zona del progetto per queste chiavi hanno la precedenza sui valori dei metadati a livello di progetto nelle rispettive zone.

  • Se aggiungi un valore di metadati a livello di zona del progetto per una chiave di metadati che ha già un valore a livello di progetto, Compute Engine sostituisce il valore a livello di progetto per le VM nella zona specificata e aggiorna la directory /project con il valore di zona del progetto.
  • Se aggiungi un nuovo valore di metadati a livello di progetto per una chiave di metadati che ha già un valore di zona del progetto, non cambia nulla. Compute Engine conserva il valore di zona del progetto nella directory /project della zona specifica.
  • Se non specifichi un valore a livello di zona del progetto per una chiave di metadati personalizzata in una zona specifica, ma la chiave ha un valore a livello di progetto, le VM continueranno ad avere i valori a livello di progetto in quelle zone.

Ad esempio, supponi di definire una coppia di metadati a livello di progetto di key-1=value-1. Supponi anche di definire una coppia di metadati di zona del progetto di key-1=zonal-value-1 solo per la zona us-central1-a. Tutte le VM nella zona us-central1-a del tuo progetto ereditano key-1=zonal-value1 come coppia di metadati. La coppia di metadati rimane key-1=value-1 per tutte le VM nelle altre zone in cui non hai impostato alcun metadati di zona del progetto per key-1.

Che cosa succede dopo?