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.
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.
Questo documento fornisce informazioni su come:
- Aggiungere o aggiornare metadati personalizzati sulle VM
- Rimuovere i metadati personalizzati dalle VM
Prima di iniziare
- Rivedi le nozioni di base su come vengono definiti, classificati e organizzati i metadati delle VM per Compute Engine. Per maggiori informazioni, consulta Informazioni sui metadati della VM.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per impostare o rimuovere i metadati personalizzati sulle VM, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) sulla VM o sul progetto -
Se le tue VM utilizzano account di servizio:
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio o sul progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per impostare o rimuovere metadati personalizzati sulle VM. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per impostare o rimuovere metadati personalizzati sulle VM sono necessarie le seguenti autorizzazioni:
-
Se le VM utilizzano account di servizio:
iam.serviceAccounts.actAs
-
Per aggiungere, aggiornare o rimuovere metadati di progetto personalizzati:
-
compute.projects.get
-
compute.projects.setCommonInstanceMetadata
-
-
Per aggiungere, aggiornare o rimuovere metadati di zona personalizzati:
-
compute.instanceSettings.get
-
compute.instanceSettings.update
-
-
Per aggiungere, aggiornare o rimuovere metadati dell'istanza personalizzata:
-
compute.instances.get
-
compute.instances.setMetadata
-
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
Compute Engine applica un limite totale combinato di 512 kB per tutte le voci di metadati. I limiti di dimensioni massime vengono applicati anche a ogni elemento key
e value
nel seguente modo:
- Ogni metadati
key
ha un limite massimo di 128 byte. Ogni metadati
key
è sensibile alle maiuscole.Per i metadati di zona, Compute Engine non consente di creare due chiavi di metadati separate con la stessa stringa, anche se sono scritte in casi diversi. Ad esempio, se disponi di una chiave di metadati personalizzata esistente per i metadati di zona denominata
project-zonal-metadata-key
, per i metadati di zona in quella zona non puoi creare nuove chiavi di metadati, comeProject-Zonal-Metadata-Key
,PROJECT-ZONAL-METADATA-KEY
o qualsiasi altra variante della stessa stringa.Ogni metadati
value
ha un limite massimo di 256 kB.Ogni metadati
value
è sensibile alle maiuscole, ad eccezione dei valori booleani.
Ad esempio, le chiavi SSH sono archiviate come metadati personalizzati nella chiave ssh-keys
. Se i contenuti dei metadati o il valore value
per questa chiave superano il limite di 256 kB, non potrai aggiungere altre chiavi SSH. Se raggiungi questo limite, valuta la possibilità di rimuovere le chiavi inutilizzate per liberare spazio nei metadati per le nuove chiavi.
Inoltre, se fornisci direttamente i contenuti dello script di avvio o chiusura, i contenuti di questi script potrebbero essere archiviati come metadati personalizzati e conteggiati ai fini di questi limiti di dimensione. Per evitare che ciò accada, archivia lo script di avvio o di chiusura come file ospitato in una posizione esterna, ad esempio Cloud Storage, e fornisci l'URL dello script di avvio durante la creazione di una VM. In questo modo, i file vengono scaricati sulla VM, anziché archiviati nel server dei metadati.
Valori booleani
Per i campi che accettano valori booleani, TRUE
o FALSE
, possono essere utilizzati anche i seguenti valori:
Stato | Valori alternativi |
---|---|
TRUE |
Y , Yes , 1 |
FALSE |
N , No , 0 |
I valori booleani non sono sensibili alle maiuscole. Ad esempio, puoi utilizzare False
, false
o FALSE
per disattivare una funzionalità.
Imposta metadati personalizzati sulle VM
Questa sezione fornisce informazioni su come aggiungere nuovi metadati personalizzati o aggiornare i valori dei metadati personalizzati esistenti per le VM di Compute Engine in uno dei seguenti modi:
- Imposta metadati di progetto personalizzati per aggiungere o aggiornare metadati di progetto personalizzati per tutte le VM nel tuo progetto.
- Imposta metadati di zona personalizzati per aggiungere o aggiornare metadati personalizzati con un ambito a livello di zona per le VM all'interno del progetto.
- Imposta metadati di istanze personalizzate per aggiungere o aggiornare metadati di istanze personalizzate per una VM specifica.
Imposta metadati di progetto personalizzati
Puoi aggiungere o aggiornare i metadati personalizzati per tutte le istanze in un progetto utilizzando la console Google Cloud, Google Cloud CLI o REST.
Utilizza queste istruzioni per applicare le impostazioni dei metadati a tutte le VM nel progetto.
Ad esempio, se definisci una coppia di metadati del progetto baz=bat
,
questa coppia di metadati viene applicata automaticamente a tutte le VM nel progetto.
Console
Nella console Google Cloud, vai alla pagina Metadati.
Fai clic su
Modifica nella parte superiore della pagina.Per aggiungere nuove voci di metadati di progetto personalizzate:
- Vai in fondo alla pagina e fai clic su Aggiungi elemento.
- Nel campo Chiave, inserisci il nome della chiave dei metadati personalizzata.
- Nel campo Valore, inserisci il valore dei metadati di progetto personalizzati.
- Facoltativo. Per aggiungere altre voci di metadati di progetto personalizzate, ripeti i passaggi precedenti per ogni voce di metadati che vuoi aggiungere.
- Per completare l'aggiunta delle voci di metadati del progetto personalizzate, fai clic su Salva.
Per modificare le voci di metadati del progetto personalizzate esistenti:
- Vai alla voce di metadati che vuoi modificare.
- Per aggiornare il nome di una chiave di metadati personalizzata specifica, inserisci il nuovo nome nel campo Chiave di quella voce.
- Per aggiornare il valore di una voce di metadati di progetto personalizzata, inserisci il nuovo valore nel campo Valore di quella voce.
- Facoltativo. Per rimuovere una voce personalizzata specifica di metadati di progetto, fai clic sull'icona di eliminazione accanto alla voce dei metadati.
- Per modificare più voci personalizzate di metadati del progetto, ripeti i passaggi precedenti per ogni voce di metadati che vuoi modificare.
- Per completare la modifica delle voci dei metadati del progetto personalizzate, fai clic su Salva.
gcloud
Utilizza il comando project-info add-metadata
.
gcloud compute project-info add-metadata \ --metadata=KEY=VALUE
Sostituisci quanto segue:
KEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Esempio
Ad esempio, per impostare due nuove voci foo=bar
e baz=bat
in un progetto, esegui questo comando:
gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=bat
Facoltativamente, puoi specificare uno o più file da cui leggere i metadati utilizzando il flag --metadata-from-file
.
REST
Facoltativo. Per eseguire il blocco ottimistico, puoi facoltativamente fornire un'impronta.
Un'impronta è una stringa casuale di caratteri generata da Compute Engine. L'impronta cambia dopo ogni richiesta e, se fornisci un'impronta non corrispondente, la richiesta viene rifiutata.
Se non fornisci un'impronta, non viene eseguito alcun controllo di coerenza e la richiesta
projects().setCommonInstanceMetadata
viene soddisfatta. Questo comportamento è diverso dai metodiinstances().setMetadata
einstanceSettings().patch
, per i quali è sempre obbligatoria un'impronta.Per ottenere l'impronta attuale di un progetto, chiama il metodo
project().get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
L'output è simile al seguente:
{ "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
Invia una richiesta al metodo
projects().setCommonInstanceMetadata
e imposta le coppie chiave-valore dei metadati personalizzati:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
Sostituisci PROJECT_ID
con l'ID progetto.
Imposta metadati di zona personalizzati
Quando imposti metadati di zona personalizzati, aggiungi o aggiorni le voci di metadati di zona per le VM in una zona specifica di un progetto. Impostando metadati di zona personalizzati per:
- Creare nuove chiavi di metadati personalizzate per una zona specifica di un progetto e impostare i metadati per tutte le VM nella zona all'interno del progetto.
- Aggiorna i valori delle voci di metadati di zona personalizzate esistenti per tutte le VM in una zona specifica di un progetto.
- Per le chiavi dei metadati personalizzate esistenti che hanno valori dei metadati del progetto, sostituisci questi valori dei metadati del progetto in zone specifiche e imposta invece metadati a livello di zona. Dopo aver impostato i metadati di zona per le chiavi in una zona specifica, tutte le VM in quella zona all'interno del progetto utilizzeranno i valori dei metadati di zona per le chiavi.
Aspetti da considerare prima di impostare metadati di zona personalizzati
Le voci di metadati di progetto e di zona sono archiviate nella stessa directory project/
. Se imposti valori diversi per le stesse chiavi di metadati personalizzate per le VM a livello di progetto e di zona, i valori dei metadati di zona per queste chiavi hanno la precedenza sui valori dei metadati del progetto nelle rispettive zone.
- Se aggiungi un valore di metadati a livello di zona per una chiave di metadati che ha già un valore di metadati di progetto, Compute Engine esegue l'override del valore dei metadati del progetto per le VM nella zona specificata e aggiorna la directory
/project
con il valore di zona. - Se aggiungi un nuovo valore di metadati a livello di progetto per una chiave di metadati che ha già un valore di metadati a livello di zona, non cambia nulla. Compute Engine conserva il valore dei metadati a livello di zona nella directory
/project
della zona specifica. - Se non specifichi un valore di metadati a livello di zona per una chiave di metadati personalizzata in una zona specifica, ma la chiave ha un valore di metadati di progetto, le VM continueranno ad avere i valori dei metadati del progetto in quelle zone.
Procedura
Puoi aggiungere o aggiornare i metadati di zona personalizzati in una zona specifica di un progetto utilizzando Google Cloud CLI o REST.
gcloud
Per aggiungere o aggiornare metadati di zona personalizzati, utilizza il comando
gcloud compute project-zonal-metadata add
.gcloud compute project-zonal-metadata add \ --zone=ZONE \ --project=PROJECT_ID \ --metadata=KEY1=VALUE1,KEY2=VALUE2,...
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui vuoi aggiungere o aggiornare i metadati della zona.KEY1
,KEY2
...: le chiavi dei metadati personalizzate per le quali vuoi aggiungere o aggiornare i valori dei metadati a livello di zona.VALUE1
,VALUE2
...: i valori dei metadati di zona che vuoi impostare per le chiavi di metadati personalizzate esistenti e nuove. A seconda della chiave e del valore dei metadati personalizzati, si verifica una delle seguenti situazioni:Se la chiave dei metadati personalizzata corrispondente è una chiave esistente contenente metadati di progetto, nella zona specificata Compute Engine sostituisce il valore dei metadati del progetto della chiave con il valore dei metadati di zona specificato. Tutte le VM nella zona specificata nel progetto ereditano i metadati di zona appena specificati per la chiave e le VM in altre zone continuano a mantenere i valori prevalenti dei metadati di progetto o di zona. Se in futuro apporti aggiornamenti al valore dei metadati del progetto per questa chiave, le VM in questa zona del progetto rimangono invariate e continueranno a utilizzare il valore dei metadati a livello di zona per questa chiave.
Se la chiave dei metadati personalizzata corrispondente è una nuova chiave di metadati che non viene utilizzata per i metadati di progetto o di zona esistenti, Compute Engine crea la chiave di metadati personalizzata e imposta questo valore come metadati di zona nella zona specificata.
Se la chiave dei metadati personalizzata corrispondente è una chiave di metadati esistente con un valore di metadati di zona nella zona specificata:
- Se il valore dei metadati specificato è diverso da quello esistente, Compute Engine aggiorna la voce dei metadati di zona con il nuovo valore.
- Se il valore dei metadati specificato corrisponde a quello esistente, la voce dei metadati di zona rimane invariata.
Esempio: aggiungere una nuova voce di metadati di zona personalizzata
Ad esempio, considera un progetto chiamato my-project
con i seguenti
metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"value-1"
e"key-2":"value-2"
Per aggiungere "key-4":"value-4"
come nuova coppia di metadati di zona personalizzata nella zona us-central1-a
, esegui questo comando
gcloud compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-a
Esempio: aggiornare i valori di una voce di metadati di zona personalizzata esistente
Considera lo stesso progetto di esempio my-project
, che ora ha i seguenti metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
e"key-4":"value-4"
Per aggiornare con i nuovi valori i valori dei metadati a livello di zona di key-1
e key-4
nella zona us-cerntral1-a
, esegui questo comando.
gcloud compute project-zonal-metadata add \ --metadata=key-1=new-value-1,key-4=new-value-4 \ --project=my-project \ --zone=us-central1-a
Esempio: eseguire l'override del valore dei metadati del progetto per una chiave e utilizzare un valore dei metadati a livello di zona
Considera lo stesso progetto di esempio my-project
, che ora ha i seguenti metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
e"key-4":"new-value-4"
In questo progetto di esempio, prendiamo in considerazione key-3
, che ha un valore di metadati di progetto value-c
. Supponi di voler impostare un valore value-3
dei metadati a livello di zona per questa chiave per tutte le VM nella zona us-central1-a
. Quando esegui l'operazione, per tutte le VM nella zona us-central1-a
, Compute Engine esegue l'override dei valori dei metadati del progetto e utilizza i valori dei metadati della zona. Le VM in tutte le altre zone del progetto conservano i valori prevalenti dei metadati di progetto o di zona per key-3
.
Per eseguire l'override del valore dei metadati del progetto per key-3
e impostare un valore dei metadati a livello di zona, esegui questo comando:
gcloud compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-a
REST
Recupera l'impronta attuale e visualizza eventuali coppie chiave-valore esistenti per il progetto in quella zona.
Per eseguire il blocco ottimistico, devi fornire un'impronta. Un'impronta è una stringa casuale di caratteri generata da Compute Engine. L'impronta cambia ogni volta che invii una richiesta di aggiunta, aggiornamento o rimozione di metadati a livello di zona e, se fornisci un'impronta non corrispondente, Compute Engine rifiuta la richiesta.
Se non fornisci un'impronta, viene eseguito un controllo di coerenza e la richiesta di aggiornamento non viene completata. Questo consente di effettuare una sola richiesta alla volta, evitando conflitti. Questo comportamento corrisponde a
instances().setMetadata
, dove è sempre richiesta l'impronta.Per ottenere l'impronta attuale dei metadati di zona, effettua una richiesta
GET
al metodoinstanceSettings().get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui vuoi impostare i metadati a livello di zona.
Di seguito è riportato un output di esempio per questa richiesta:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
Per aggiungere o aggiornare i metadati di zona, effettua una richiesta
PATCH
al metodoinstanceSettings().patch
. Devi fornire quanto segue con la tua richiesta:Una maschera di aggiornamento. Utilizza il parametro di query
update_mask
. La maschera di aggiornamento deve contenere le chiavi dei metadati per:- I nuovi metadati personalizzati di zona che vuoi aggiungere
- I metadati di zona personalizzati esistenti per i quali vuoi aggiornare i valori
Devi aggiungere la stringa
metadata.items.
come prefisso per ogni chiave, ad esempiometadata.items.key1,metadata.items.key3
.Nel corpo della richiesta, fornisci quanto segue:
- Le chiavi e i valori dei nuovi metadati personalizzati di zona che vuoi aggiungere
- Le chiavi e i valori dei metadati di zona personalizzati esistenti che vuoi aggiornare
- Il valore attuale dell'impronta
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { "KEY1": "VALUE1", "KEY2": "VALUE2", ... } } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ZONE
: la zona in cui vuoi impostare i metadati a livello di zona.PREFIXED_METADATA_KEYS
: l'elenco delle chiavi di metadati per quanto segue, dove ogni chiave è preceduta dal stringametadata.items.
:- I nuovi metadati personalizzati di zona che vuoi aggiungere
- I metadati di zona personalizzati esistenti per i quali vuoi aggiornare i valori
Ad esempio, supponi che le tue attuali chiavi dei metadati di zona in una zona specifica siano
key-1
ekey-2
. Se vuoi aggiungere una nuova chiave,key-3
, per i metadati di zona in quella zona e anche aggiornare i metadati di zona per una delle chiavi esistenti,key-1
, la maschera di aggiornamento deve avere la stringa seguente:metadata.items.key1,metadata.items.key3
FINGER_PRINT
: il valore corrente dell'impronta.KEY1
,KEY2
...: le chiavi di metadati di zona personalizzate per le quali vuoi aggiungere o aggiornare i valori. Specifica tutte le chiavi di metadati di zona personalizzate specificate nella maschera di aggiornamento.VALUE1
,VALUE2
...: i valori dei metadati di zona che vuoi impostare per le chiavi di metadati personalizzate esistenti e nuove. A seconda della chiave e del valore dei metadati personalizzati, si verifica una delle seguenti situazioni:- Se la chiave dei metadati personalizzata corrispondente è una chiave esistente contenente metadati di progetto, nella zona specificata Compute Engine sostituisce il valore dei metadati del progetto della chiave con il valore dei metadati di zona specificato. Tutte le VM nella zona specificata nel progetto ereditano i metadati di zona appena specificati per la chiave e le VM in altre zone continuano a mantenere i valori prevalenti dei metadati di progetto o di zona. Se in futuro apporti aggiornamenti al valore dei metadati del progetto per questa chiave, le VM in questa zona del progetto rimangono invariate e continueranno a utilizzare il valore dei metadati a livello di zona per questa chiave.
- Se la chiave di metadati personalizzata corrispondente è una nuova chiave di metadati che non viene utilizzata per i metadati di progetto o di zona esistenti, Compute Engine crea la chiave di metadati personalizzata e imposta questo valore come metadati di zona nella zona specificata.
Se la chiave dei metadati personalizzata corrispondente è una chiave di metadati esistente con un valore di metadati di zona nella zona specificata:
Se il valore dei metadati specificato è diverso da quello esistente, Compute Engine aggiorna la voce dei metadati di zona con il nuovo valore.
Se il valore dei metadati specificato corrisponde a quello esistente, la voce dei metadati di zona rimane invariata.
Esempio: aggiungere una nuova voce di metadati di zona personalizzata
Ad esempio, considera un progetto chiamato my-project
con i seguenti
metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"value-1"
e"key-2":"value-2"
Per aggiungere "key-4":"value-4"
come nuova coppia di metadati di zona personalizzata nella zona us-central1-a
, effettua la seguente richiesta PATCH
:
PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-4": "value-4" } } }
Esempio: aggiornare i valori di una voce di metadati di zona personalizzata esistente
Considera lo stesso progetto di esempio my-project
, che ora ha i seguenti metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
e"key-4":"value-4"
Per aggiornare i valori dei metadati di zona di key-1
e key-4
nella zona us-cerntral1-a
con nuovi valori, effettua la seguente richiesta PATCH
:
PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-1": "new-value-1", "key-4": "new-value-4" } } }
Esempio: eseguire l'override del valore dei metadati del progetto per una chiave e impostare un valore dei metadati a livello di zona
Considera lo stesso progetto di esempio my-project
, che ora ha i seguenti metadati personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
e"key-4":"new-value-4"
In questo progetto di esempio, prendiamo in considerazione key-3
, che ha un valore di metadati di progetto value-c
. Supponi di voler impostare un valore value-3
dei metadati a livello di zona per questa chiave per tutte le VM nella zona us-central1-a
. Quando esegui l'operazione, per tutte le VM nella zona us-central1-a
, Compute Engine esegue l'override dei valori dei metadati del progetto e utilizza i valori dei metadati della zona. Le VM in tutte le altre zone del progetto conservano i valori prevalenti dei metadati di progetto o di zona per key-3
.
Per eseguire l'override del valore dei metadati del progetto per key-3
e utilizzare invece il valore dei metadati a livello di zona value-3
, effettua la seguente richiesta PATCH
:
PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-3 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-3": "value-3" } } }
Imposta metadati dell'istanza personalizzati
Puoi aggiungere o aggiornare i metadati personalizzati per una singola istanza VM utilizzando la console Google Cloud, Google Cloud CLI o REST.
Puoi impostare i metadati dell'istanza personalizzati in uno dei seguenti modi:
- Per le nuove VM, puoi aggiungere metadati personalizzati durante la creazione della VM.
- Per le VM esistenti, puoi aggiungere o aggiornare metadati personalizzati quando la VM è in esecuzione.
Aggiungere metadati di istanze personalizzate durante la creazione della VM
Utilizza queste istruzioni per aggiungere metadati su un'istanza VM specifica al momento della creazione.
Console
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica i dettagli della VM.
Espandi la sezione Opzioni avanzate e procedi nel seguente modo:
- Espandi la sezione Gestione.
- Per aggiungere più coppie chiave-valore per i metadati personalizzati, nella sezione Metadati, fai clic su Aggiungi elemento.
Per creare la VM, fai clic su Crea.
gcloud
Per impostare metadati personalizzati, utilizza il comando gcloud compute instances create
con il flag --metadata
.
gcloud compute instances create VM_NAME \ --metadata=KEY=VALUE
Sostituisci quanto segue:
VM_NAME
: il nome della VMKEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Esempio
Ad esempio, per impostare una nuova chiave foo
con valore bar
su una VM denominata example-instance
, esegui questo comando:
gcloud compute instances create example-instance \ --metadata=foo=bar
REST
Utilizza il metodo instances.insert
e fornisci i metadati personalizzati come parte della proprietà metadata
nella richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/ZONE
/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME
", "...": [ { } ], "metadata": { "items": [ { "key": "KEY", "value": "VALUE" } ] }, .. }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: zona in cui creare la VMMACHINE_TYPE
: tipo di macchina, predefinita o personalizzata, per la nuova VMVM_NAME
: nome della nuova VMKEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Aggiunta o aggiornamento di metadati di istanze personalizzate su una VM esistente
Utilizza queste istruzioni per aggiornare i metadati su un'istanza VM specifica già esistente.
Console
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Fai clic sull'istanza per la quale vuoi aggiornare i metadati.
- Fai clic sul pulsante Modifica nella parte superiore della pagina.
- In Metadati personalizzati, fai clic su Aggiungi elemento o modifica le voci di metadati esistenti.
- Salva le modifiche.
gcloud
L'aggiornamento dei metadati della VM con gcloud CLI è un'azione aggiuntiva. Specifica solo le chiavi dei metadati che vuoi aggiungere o modificare. Se hai già una chiave fornita, il valore di quella chiave viene aggiornato con il nuovo valore.
Utilizza il comando instances add-metadata
:
gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUE
Sostituisci quanto segue:
VM_NAME
: il nome della VMKEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Esempi
Se vuoi aggiungere la voce foo=bar
, utilizza:
gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Se vuoi modificare la voce foo=bar
in foo=bat
, utilizza:
gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
REST
Recupera l'impronta attuale e visualizza eventuali coppie chiave-valore esistenti per la VM. Per farlo, chiama il metodo
instances().get
.Un'impronta è una stringa casuale di caratteri generata da Compute Engine e viene utilizzata per bloccare in modo ottimistico. Per aggiornare la VM, devi fornire il valore dell'impronta corrispondente. L'impronta cambia dopo ogni richiesta e, se fornisci un'impronta non corrispondente, la richiesta viene rifiutata. Questo consente di effettuare un solo aggiornamento alla volta, evitando conflitti.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova la VMVM_NAME
: nome della VM
L'output è simile al seguente:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
Invia una richiesta al metodo
instances().setMetadata
. Fornisci un elenco dei nuovi valori dei metadati e del valorefingerprint
attuale.Se la VM ha coppie chiave-valore esistenti che vuoi conservare, devi includerle in questa richiesta con le nuove coppie chiave-valore.
Esempio
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "zhma6O1w2l8=", "items": [ { "key": "foo", "value": "bar" }, { "key": "baz", "value": "bat" } ] }Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova la VMVM_NAME
: nome della VM
Rimuovi metadati personalizzati dalle VM
Questa sezione fornisce informazioni su come rimuovere le voci di metadati personalizzate per le VM di Compute Engine in uno dei seguenti modi:
- Rimuovi i metadati di progetto personalizzati per rimuovere i metadati personalizzati impostati per tutte le VM in un progetto.
- Rimuovi i metadati di zona personalizzati per rimuovere i metadati personalizzati impostati per tutte le VM in una zona specifica di un progetto.
- Rimuovi i metadati dell'istanza personalizzata per rimuovere i metadati della VM impostati per una VM specifica.
Rimuovi metadati di progetto personalizzati
Puoi rimuovere i metadati di progetto personalizzati utilizzando la console Google Cloud o Google Cloud CLI.
Console
Nella console Google Cloud, vai alla pagina Metadati.
Fai clic su
Modifica nella parte superiore della pagina.Vai alla voce di metadati che desideri rimuovere e fai clic sul pulsante Elimina
accanto alla voce.Ripeti questo passaggio per ogni voce di metadati che vuoi rimuovere.
Per completare la rimozione delle voci dei metadati del progetto personalizzate, fai clic su Salva.
gcloud
Per rimuovere i metadati di progetto personalizzati, utilizza il comando gcloud compute project-info remove-metadata
.
- Se vuoi rimuovere le voci di metadati personalizzati per chiavi specifiche, specifica queste chiavi utilizzando il flag
--keys
ed escludi i valori di queste chiavi.
gcloud compute project-info remove-metadata \ --keys=KEY1,KEY2,...
- Se vuoi rimuovere tutti i metadati personalizzati per la VM, specifica il flag
--all
.
gcloud compute project-info remove-metadata \ --all
Sostituisci quanto segue:
KEY1
,KEY2
...: le chiavi dei metadati dell'istanza personalizzata che vuoi rimuovere.
Rimuovi i metadati di zona personalizzati
Puoi rimuovere i metadati personalizzati di zona utilizzando Google Cloud CLI o REST.
gcloud
Per rimuovere i metadati personalizzati di zona, utilizza il comando gcloud compute project-zonal-metadata remove
e specifica tutte le chiavi dei metadati che vuoi rimuovere usando il flag --keys
.
gcloud compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui vuoi rimuovere i metadati della zona.KEY1
,KEY2
...: le chiavi di metadati di zona personalizzate che vuoi rimuovere.
Dopo aver eseguito il comando, se per una delle chiavi specificate sono disponibili valori dei metadati del progetto, le VM nella zona specificata ereditano questi valori dei metadati del progetto. Se la voce dei metadati è stata impostata solo a livello di zona e non è presente un valore dei metadati di progetto corrispondente per quella chiave, le VM in quella zona perdono queste informazioni sui metadati.
Esempio:
Considera un progetto di esempio my-project
, che ha i seguenti metadati di progetto personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
e"key-4":"new-value-4"
Per rimuovere tutti i metadati di zona nella zona us-central1-a
, esegui questo comando.
gcloud compute project-zonal-metadata remove \ --metadata=key-1,key-2,key-3,key-4 \ --project=my-project \ --zone=us-central1-a
Dopo aver eseguito il comando, le VM nella zona us-central1-a
possiedono le seguenti voci di metadati di progetto personalizzate:
"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-c"
REST
Recupera l'impronta attuale e visualizza eventuali coppie chiave-valore esistenti per il progetto in quella zona.
Per eseguire il blocco ottimistico, devi fornire un'impronta. Un'impronta è una stringa casuale di caratteri generata da Compute Engine. L'impronta cambia ogni volta che invii una richiesta di aggiunta, aggiornamento o rimozione di metadati a livello di zona e, se fornisci un'impronta non corrispondente, Compute Engine rifiuta la richiesta.
Se non fornisci un'impronta, viene eseguito un controllo di coerenza e la richiesta di eliminazione non viene completata. Questo consente di effettuare una sola richiesta alla volta, evitando conflitti. Questo comportamento corrisponde a
instances().setMetadata
, dove è sempre richiesta l'impronta.Per ottenere l'impronta attuale di un progetto, chiama il metodo
instanceSettings().get
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui vuoi rimuovere i metadati della zona.
Di seguito è riportato un output di esempio per questa richiesta:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
Per rimuovere i metadati personalizzati di zona, effettua una richiesta
PATCH
al metodoinstanceSettings().patch
escludendo dal corpo della richiesta le chiavi dei metadati per cui vuoi rimuovere i metadati di zona. Devi fornire quanto segue con la tua richiesta:Una maschera di aggiornamento. Utilizza il parametro di query
update_mask
. La maschera di aggiornamento deve contenere tutte le chiavi di metadati personalizzate esistenti per le quali vuoi rimuovere i metadati di zona. Devi aggiungere la stringametadata.items.
come prefisso per ogni chiave, ad esempio,metadata.items.key1,metadata.items.key3
.Nel corpo della richiesta, fornisci solo il valore corrente dell'impronta. Escludi tutte le chiavi dei metadati personalizzate che hai specificato nella maschera di aggiornamento. Se includi una qualsiasi delle chiavi dei metadati sia nella maschera di aggiornamento sia nel corpo della richiesta, Compute Engine non rimuove i metadati di zona per quelle chiavi.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { } } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ZONE
: la zona in cui vuoi rimuovere i metadati della zona.PREFIXED_METADATA_KEYS
: l'elenco di tutte le chiavi di metadati personalizzate esistenti per le quali vuoi rimuovere i metadati a livello di zona, in cui ogni chiave è preceduta dal prefissometadata.items.
. Per assicurarti che la richiesta di eliminazione vada a buon fine, escludi queste chiavi di metadati dal corpo della richiesta. Se includi una qualsiasi delle chiavi dei metadati sia nella maschera di aggiornamento sia nel corpo della richiesta, Compute Engine non rimuove i metadati di zona per quelle chiavi.Ad esempio, supponiamo che le tue attuali chiavi dei metadati con metadati di zona siano
key-1
,key-2
,key-3
ekey-4
e che tu voglia rimuovere le voci di metadati di zona perkey-1
ekey-2
, la maschera di aggiornamento deve avere la seguente stringa:metadata.items.key1,metadata.items.key2
FINGER_PRINT
: il valore corrente dell'impronta.
Dopo aver effettuato la richiesta, se per una delle chiavi specificate sono disponibili valori dei metadati del progetto, le VM nella zona specificata ereditano questi valori dei metadati del progetto. Se la chiave dei metadati è stata impostata solo a livello di zona e non è presente un valore dei metadati di progetto corrispondente per quella chiave, le VM in quella zona perdono queste informazioni sui metadati.
Esempio:
Considera un progetto di esempio my-project
, che ha i seguenti metadati di progetto personalizzati:
- Metadati del progetto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadati di zona nella zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
e"key-4":"new-value-4"
Per rimuovere i metadati di zona per key-1
e key-2
nella zona us-central1-a
, effettua la seguente richiesta PATCH
.
PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-2 { "fingerprint": "FikclA7UBC0=", "metadata": { "items": { } } }
Al termine della richiesta, le VM nella zona us-central1-a
possiedono i seguenti metadati personalizzati. Le VM ereditano i valori dei metadati del progetto per key-1
e key-2
, ma conservano i metadati di zona per key-3
e key-4
.
- Metadati del progetto:
"key-1":"value-a"
e"key-2":"value-b"
- Metadati di zona nella zona
us-central1-a
:"key-3":"value-3"
e"key-4":"new-value-4"
Rimuovi metadati dell'istanza personalizzata
Puoi rimuovere i metadati dell'istanza personalizzata utilizzando la console Google Cloud, Google Cloud CLI o REST.
Console
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Nella colonna Nome, fai clic sul nome della VM per la quale vuoi rimuovere i metadati.
- Fai clic su Modifica nella parte superiore della pagina.
- Nella sezione Metadati, fai clic su Elimina elemento per ogni voce di metadati che vuoi rimuovere.
- Per confermare le modifiche e rimuovere i metadati dell'istanza personalizzata, fai clic su Salva.
gcloud
Per rimuovere i metadati dell'istanza personalizzata, utilizza il comando gcloud compute instances remove-metadata
.
- Se vuoi rimuovere le voci di metadati personalizzati per chiavi specifiche, specifica queste chiavi utilizzando il flag
--keys
ed escludi i valori di queste chiavi.
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --keys=KEY1,KEY2,...
- Se vuoi rimuovere tutti i metadati personalizzati per la VM, specifica il flag
--all
.
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --all
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM.VM_NAME
: nome della VMKEY1
,KEY2
...: le chiavi dei metadati dell'istanza personalizzata che vuoi rimuovere.
REST
Recupera l'impronta attuale e visualizza eventuali coppie chiave-valore esistenti per la VM. Per farlo, chiama il metodo
instances().get
.Un'impronta è una stringa casuale di caratteri generata da Compute Engine e viene utilizzata per bloccare in modo ottimistico. Per aggiornare la VM, devi fornire il valore dell'impronta corrispondente. L'impronta cambia dopo ogni richiesta e, se fornisci un'impronta non corrispondente, la richiesta viene rifiutata. Questo consente di effettuare un solo aggiornamento alla volta, evitando conflitti.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM.VM_NAME
: nome della VM
L'output è simile al seguente:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "key-1", "value": "value-1" } { "key": "key-2", "value": "value-2" } ] }, ... }
Invia una richiesta al metodo
instances().setMetadata
. Affinché la richiesta vada a buon fine, devi includere il valore attuale dell'impronta dei metadati.Per rimuovere tutte le coppie chiave-valore di metadati personalizzati da una VM, nella proprietà
items
escludi le chiavi dei metadati per le quali vuoi rimuovere i valori dei metadati.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": "FINGER_PRINT" "items": [ { "key": "KEY1" "value": "VALUE1" } { "key": "KEY2" "value": "VALUE2" } ... ] }Per rimuovere tutti i metadati dell'istanza personalizzata sulla VM, escludi completamente la proprietà
items
.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": FINGER_PRINT }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM.VM_NAME
: nome della VMFINGER_PRINT
: il valore corrente dell'impronta.KEY1
,KEY2
...: le chiavi dei metadati dell'istanza personalizzata che vuoi rimuovere.VALUE1
,VALUE2
...: i valori delle chiavi dei metadati dell'istanza personalizzata che vuoi rimuovere.
Passaggi successivi
- Scopri di più sui metadati delle VM.
- Scopri come visualizzare ed eseguire query sui metadati.
- Scopri di più su come eseguire gli script di avvio o sugli script di arresto nel server dei metadati.