Ogni voce dei metadati viene archiviata sul server dei metadati come coppie chiave-valore. Le chiavi dei metadati sono sensibili alle maiuscole e possono essere di tipo predefinito o personalizzato.
I metadati personalizzati ti consentono di creare e utilizzare le tue coppie chiave-valore dei metadati su una singola VM o un progetto. Puoi aggiungere nuove chiavi dei metadati personalizzate, aggiornare i valori delle chiavi esistenti e rimuovere le voci di metadati personalizzate quando non ti servono. L'impostazione di metadati personalizzati è utile per passare 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 i metadati personalizzati sulle VM
- Rimuovere i metadati personalizzati dalle VM
Prima di iniziare
- 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 è
il processo di verifica dell'identità per poter accedere 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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
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.
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
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:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) sulla VM o sul progetto -
Se le VM utilizzano service account:
Service Account User (
roles/iam.serviceAccountUser
) sul service account 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 impostare o rimuovere i metadati personalizzati sulle VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per impostare o rimuovere i metadati personalizzati sulle VM sono necessarie le seguenti autorizzazioni:
-
Se le VM utilizzano service account:
iam.serviceAccounts.actAs
-
Per aggiungere, aggiornare o rimuovere i metadati del progetto personalizzati:
-
compute.projects.get
-
compute.projects.setCommonInstanceMetadata
-
-
Per aggiungere, aggiornare o rimuovere i metadati di zona personalizzati:
-
compute.instanceSettings.get
-
compute.instanceSettings.update
-
-
Per aggiungere, aggiornare o rimuovere i metadati delle istanze personalizzati:
-
compute.instances.get
-
compute.instances.setMetadata
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
Compute Engine impone un limite totale combinato di 512 KB per tutte le voci di metadati. I limiti di dimensioni massime vengono applicati anche a ogni
key
evalue
nel seguente modo:- Ogni metadato
key
ha un limite massimo di 128 byte. Ogni metadato
key
è sensibile alle maiuscole.Per i metadati di zona, Compute Engine non consente di creare due chiavi di metadati distinte con la stessa stringa, anche se sono scritte con lettere maiuscole e minuscole diverse. Ad esempio, se hai già una chiave di metadati personalizzata 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 altre varianti della stessa stringa.Ogni metadato
value
ha un limite massimo di 256 KB.Ogni metadato
value
è sensibile alle maiuscole, ad eccezione dei valori booleani.
Ad esempio, le chiavi SSH vengono archiviate come metadati personalizzati sotto la chiave
ssh-keys
. Se i contenuti dei metadati ovalue
per questa chiave superano il limite di 256 KB, non potrai aggiungere altre chiavi SSH. Se riscontri questo limite, considera la possibilità di rimuovere le chiavi inutilizzate per liberare spazio per i metadati per le nuove chiavi.Inoltre, se fornisci direttamente i contenuti dello script di avvio o di arresto, anche i contenuti di questi script potrebbero essere archiviati come metadati personalizzati e conteggiati ai fini di queste limitazioni di dimensioni. Per evitare questo problema, archivia lo script di avvio o di arresto come file ospitato in una posizione esterna, ad esempio Cloud Storage, e fornisci l'URL dello script di avvio quando crei una VM. Questo consente di scaricare i file vengono scaricati sulla VM anziché memorizzarli nel server dei metadati.
Valori booleani
Per i campi che accettano valori booleani,
TRUE
oFALSE
, 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
oFALSE
per disattivare una funzionalità.Imposta i 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 Compute Engine in uno dei seguenti modi:
- Imposta i metadati di progetto personalizzati per aggiungere o aggiornare i metadati di progetto personalizzati per tutte le VM del progetto.
- Imposta metadati di zona personalizzati per aggiungere o aggiornare i metadati personalizzati con un ambito di zona per le VM all'interno del progetto.
- Imposta metadati delle istanze personalizzati per aggiungere o aggiornare i metadati delle istanze personalizzati per una VM specifica.
Imposta i metadati di progetto personalizzati
Puoi aggiungere o aggiornare i metadati personalizzati per tutte le istanze di un progetto utilizzando la console Google Cloud , Google Cloud CLI o REST.
Segui queste istruzioni per applicare le impostazioni dei metadati a tutte le VM del progetto. Ad esempio, se definisci una coppia di metadati di progetto
baz=bat
, la coppia di metadati viene applicata automaticamente a tutte le VM del 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 personalizzati:
- Vai in fondo alla pagina e fai clic su Aggiungi elemento.
- Nel campo Chiave, inserisci il nome della chiave dei metadati personalizzati.
- Nel campo Valore, inserisci il valore dei metadati di progetto personalizzati.
- (Facoltativo) Per aggiungere altre voci di metadati di progetto personalizzati, ripeti i passaggi precedenti per ogni voce di metadati che vuoi aggiungere.
- Per completare l'aggiunta delle voci di metadati di progetto personalizzati, fai clic su Salva.
Per modificare le voci di metadati di progetto personalizzati esistenti:
- Vai alla voce di metadati che vuoi modificare.
- Per aggiornare il nome di una chiave dei metadati personalizzata specifica, inserisci il nuovo nome nel campo Chiave della voce.
- Per aggiornare il valore di una voce dei metadati di progetto personalizzati, inserisci il nuovo valore nel campo Valore della voce.
- (Facoltativo) Per rimuovere una voce specifica di metadati di progetto personalizzati, fai clic sull'icona di eliminazione accanto alla voce di metadati.
- Per modificare più voci di metadati di progetto personalizzati, ripeti i passaggi precedenti per ogni voce di metadati che vuoi modificare.
- Per completare la modifica delle voci di metadati di progetto personalizzati, 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
ebaz=bat
in un progetto, esegui il seguente 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 una fingerprint.
Una fingerprint è una stringa casuale di caratteri generata da Compute Engine. La fingerprint cambia dopo ogni richiesta e, se fornisci una fingerprint non corrispondente, la richiesta viene rifiutata.
Se non fornisci una fingerprint, non viene eseguito alcun controllo di coerenza e la richiesta
projects().setCommonInstanceMetadata
va a buon fine. Questo comportamento è diverso da quello dei metodiinstances().setMetadata
einstanceSettings().patch
, in cui è sempre obbligatoria una fingerprint.Per ottenere la fingerprint corrente di un progetto, richiama 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=", ... } }
Effettua 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 il tuo ID progetto.Imposta i metadati di zona personalizzati
Quando imposti i metadati di zona personalizzati, aggiungi o aggiorni le voci dei metadati di zona per le tue VM in una zona specifica di un progetto. Puoi eseguire le seguenti operazioni impostando i metadati di zona personalizzati:
- Crea nuove chiavi dei metadati personalizzati per una zona specifica in un progetto e imposta i metadati per tutte le VM in quella zona del progetto.
- Aggiorna i valori delle voci di metadati di zona personalizzati esistenti per tutte le VM in una zona specifica di un progetto.
- Per le chiavi dei metadati personalizzati esistenti che hanno valori dei metadati di progetto, sostituisci i valori dei metadati di progetto in zone specifiche e imposta invece i metadati di zona. Dopo aver impostato i metadati di zona per queste chiavi in una zona specifica, tutte le VM in quella zona del progetto utilizzano i valori dei metadati di zona per queste chiavi.
Aspetti da prendere in considerazione prima di impostare i metadati di zona personalizzati
Le voci dei metadati di progetto e di zona vengono archiviate nella stessa directory
project/
. Se imposti valori diversi per le stesse chiavi dei metadati personalizzati 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 di progetto nelle rispettive zone.- Se aggiungi un valore dei metadati di zona per una chiave dei metadati che ha già
un valore dei metadati di progetto, Compute Engine sostituisce il valore dei metadati di
progetto per le VM in questa zona specificata e aggiorna la directory
/project
con il valore di zona. - Se aggiungi un nuovo valore dei metadati a livello di progetto per una chiave dei metadati che ha già
un valore dei metadati a livello di zona, non cambia nulla. Compute Engine conserva il
valore dei metadati di zona nella directory
/project
nella zona specifica. - Se non specifichi un valore dei metadati di zona per una chiave dei metadati personalizzata in una zona specifica, ma la chiave ha un valore dei metadati di progetto, le VM in quelle zone continueranno ad avere i valori dei metadati di progetto.
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 i 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 progetto.ZONE
: la zona in cui vuoi aggiungere o aggiornare i metadati di zona.KEY1
,KEY2
…: le chiavi dei metadati personalizzati per le quali vuoi aggiungere o aggiornare i valori dei metadati di zona.VALUE1
,VALUE2
...: i valori dei metadati di zona che vuoi impostare per le chiavi dei metadati personalizzati esistenti e nuove. A seconda della chiave e del valore dei metadati personalizzati, si verifica una delle seguenti condizioni:Se la chiave dei metadati personalizzati corrispondente è una chiave esistente con metadati di progetto, nella zona specificata Compute Engine sostituisce il valore dei metadati di progetto della chiave con il valore dei metadati di zona specificato. Tutte le VM nella zona specificata del progetto ereditano questi metadati di zona appena specificati per la chiave e le VM in altre zone continuano a mantenere i valori dei metadati di progetto o di zona prevalenti. Se apporti aggiornamenti futuri al valore dei metadati di progetto per questa chiave, le VM in questa zona del progetto non vengono influenzate e continuano a utilizzare il valore dei metadati di zona per questa chiave.
Se la chiave dei metadati personalizzati corrispondente è una nuova chiave dei metadati che non viene utilizzata per i metadati di progetto o di zona esistenti, Compute Engine crea la chiave dei metadati personalizzati e imposta questo valore come metadati di zona nella zona specificata.
Se la chiave dei metadati personalizzati corrispondente è una chiave dei metadati esistente con un valore dei 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: aggiungi una nuova voce dei metadati di zona personalizzati
Ad esempio, considera un progetto denominato
my-project
con i seguenti metadati personalizzati:- Metadati di 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 personalizzati nella zonaus-central1-a
, esegui il seguente comandogcloud compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-a
Esempio: aggiorna i valori di una voce dei metadati di zona personalizzati esistente
Considera lo stesso progetto di esempio
my-project
, che ora ha i seguenti metadati personalizzati:- Metadati di 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
ekey-4
nella zonaus-cerntral1-a
con nuovi valori, esegui il seguente 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: sostituisci il valore dei metadati di progetto per una chiave e utilizza un valore dei metadati di zona
Considera lo stesso progetto di esempio
my-project
, che ora ha i seguenti metadati personalizzati:- Metadati di 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, considera
key-3
, che ha un valore dei metadati di progetto divalue-c
. Supponiamo che tu voglia impostare un valore dei metadati di zonavalue-3
per questa chiave per tutte le VM nella zonaus-central1-a
. Quando esegui l'operazione, per tutte le VM nella zonaus-central1-a
, Compute Engine sostituisce i valori dei metadati di progetto e utilizza i valori dei metadati di zona. Le VM in tutte le altre zone del progetto mantengono i valori dei metadati di progetto o di zona prevalenti perkey-3
.Per sostituire il valore dei metadati di progetto per
key-3
e impostare un valore dei metadati di zona, esegui il seguente comando:gcloud compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-a
REST
Ottieni la fingerprint corrente e visualizza eventuali coppie chiave-valore esistenti per il progetto nella zona.
Per eseguire il blocco ottimistico, devi fornire una fingerprint. Una fingerprint è una stringa casuale di caratteri generata da Compute Engine. La fingerprint cambia ogni volta che effettui una richiesta di aggiunta, aggiornamento o rimozione di metadati di zona e, se fornisci una fingerprint non corrispondente, Compute Engine rifiuta la richiesta.
Se non fornisci una fingerprint, viene eseguito un controllo di coerenza e la richiesta di aggiornamento non va a buon fine. In questo modo, si può effettuare una sola richiesta alla volta, evitando conflitti. Questo comportamento corrisponde a
instances().setMetadata
, dove è sempre richiesta una fingerprint.Per ottenere la fingerprint corrente 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 progetto.ZONE
: la zona in cui vuoi impostare i metadati di zona.
Di seguito è riportato un esempio di output 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 richiesta:Una maschera di aggiornamento. Utilizza il parametro di query
update_mask
. La maschera di aggiornamento deve contenere le chiavi dei metadati per quanto segue:- I nuovi metadati di zona personalizzati da 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 metadati per i nuovi metadati di zona personalizzati che vuoi aggiungere
- Le chiavi e i valori dei metadati di zona personalizzati esistenti che vuoi aggiornare
- Il valore attuale della fingerprint
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 di zona.PREFIXED_METADATA_KEYS
: l'elenco delle chiavi dei metadati per quanto segue, dove ogni chiave ha come prefisso la stringametadata.items.
:- I nuovi metadati di zona personalizzati da aggiungere
- I metadati di zona personalizzati esistenti per i quali vuoi aggiornare i valori
Ad esempio, supponiamo che le chiavi dei metadati di zona attuali in una zona specifica siano
key-1
ekey-2
. Se vuoi aggiungere una nuova chiave,key-3
, per i metadati di zona nella zona in questione e aggiornare anche i metadati di zona per una delle chiavi esistenti,key-1
, la maschera di aggiornamento deve avere la seguente stringa:metadata.items.key1,metadata.items.key3
FINGER_PRINT
: il valore attuale della fingerprint.KEY1
,KEY2
...: le chiavi dei metadati di zona personalizzati per le quali vuoi aggiungere o aggiornare i valori. Specifica tutte le chiavi dei metadati di zona personalizzati che hai specificato nella maschera di aggiornamento.VALUE1
,VALUE2
...: i valori dei metadati di zona che vuoi impostare per le chiavi dei metadati personalizzati esistenti e nuove. A seconda della chiave e del valore dei metadati personalizzati, si verifica una delle seguenti condizioni:- Se la chiave dei metadati personalizzati corrispondente è una chiave esistente con metadati di progetto, nella zona specificata Compute Engine sostituisce il valore dei metadati di progetto della chiave con il valore dei metadati di zona specificato. Tutte le VM nella zona specificata del progetto ereditano questi metadati di zona appena specificati per la chiave e le VM in altre zone continuano a mantenere i valori dei metadati di progetto o di zona prevalenti. Se apporti aggiornamenti futuri al valore dei metadati di progetto per questa chiave, le VM in questa zona del progetto non vengono influenzate e continuano a utilizzare il valore dei metadati di zona per questa chiave.
- Se la chiave dei metadati personalizzati corrispondente è una nuova chiave dei metadati che non viene utilizzata per i metadati di progetto o di zona esistenti, Compute Engine crea la chiave dei metadati personalizzati e imposta questo valore come metadati di zona nella zona specificata.
Se la chiave dei metadati personalizzati corrispondente è una chiave dei metadati esistente con un valore dei 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: aggiungi una nuova voce dei metadati di zona personalizzati
Ad esempio, considera un progetto denominato
my-project
con i seguenti metadati personalizzati:- Metadati di 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 personalizzati nella zonaus-central1-a
, effettua la seguente richiestaPATCH
: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: aggiorna i valori di una voce dei metadati di zona personalizzati esistente
Considera lo stesso progetto di esempio
my-project
, che ora ha i seguenti metadati personalizzati:- Metadati di 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
ekey-4
nella zonaus-cerntral1-a
con nuovi valori, effettua la seguente richiestaPATCH
: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: sostituisci il valore dei metadati di progetto per una chiave e imposta un valore dei metadati di zona
Considera lo stesso progetto di esempio
my-project
, che ora ha i seguenti metadati personalizzati:- Metadati di 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, considera
key-3
, che ha un valore dei metadati di progetto divalue-c
. Supponiamo che tu voglia impostare un valore dei metadati di zonavalue-3
per questa chiave per tutte le VM nella zonaus-central1-a
. Quando esegui l'operazione, per tutte le VM nella zonaus-central1-a
, Compute Engine sostituisce i valori dei metadati di progetto e utilizza i valori dei metadati di zona. Le VM in tutte le altre zone del progetto mantengono i valori dei metadati di progetto o di zona prevalenti perkey-3
.Per sostituire il valore dei metadati di progetto per
key-3
e utilizzare il valore dei metadati di zonavalue-3
, effettua la seguente richiestaPATCH
: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 i metadati delle istanze 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 delle istanze 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 i metadati personalizzati quando la VM è in esecuzione.
Aggiungi i metadati delle istanze personalizzati durante la creazione della VM
Segui queste istruzioni per aggiungere metadati a un'istanza VM specifica al momento della sua creazione.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Specifica i dettagli della VM.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
- Espandi la sezione Gestione.
- Per aggiungere più coppie chiave-valore per i metadati personalizzati, fai clic su Aggiungi elemento nella sezione Metadati.
Per creare la VM, fai clic su Crea.
gcloud
Per impostare i metadati personalizzati, utilizza il comando
gcloud compute instances create
con il flag--metadata
.gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-project=IMAGE_PROJECT \ IMAGE_FLAG \ --metadata=KEY=VALUE
Sostituisci quanto segue:
VM_NAME
: il nome della VMZONE
: la zona in cui creare la VMIMAGE_PROJECT
: il progetto che contiene l'immagine da utilizzare per la VMIMAGE_FLAG
: specifica una delle seguenti opzioni:Utilizza il flag
--image IMAGE_NAME
per indicare una versione specifica di un'immagine pubblica.Ad esempio
--image debian-12-bookworm-v20241112
.Utilizza il flag
--image-family IMAGE_FAMILY_NAME
per specificare una famiglia di immagini.In questo modo, la VM viene creata dall'immagine sistema operativo più recente e non deprecata nella famiglia di immagini. Ad esempio, se specifichi
--image-family debian-12
, Compute Engine utilizza l'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 12.
KEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Esempio
Ad esempio, per impostare una nuova chiave
env
con un valoretest
su una VM denominataexample-instance
, esegui il seguente comando:gcloud compute instances create example-instance \ --zone=us-central1-a --image-project=debian-cloud \ --image-family=debian-12 \ --metadata=env=test
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
: la zona in cui creare la VMMACHINE_TYPE
: il tipo di macchina, predefinita o personalizzata, per la nuova VMVM_NAME
: il nome della nuova VMKEY
: il nome della chiave dei metadatiVALUE
: il valore memorizzato per questa chiave
Aggiungi o aggiorna i metadati delle istanze personalizzati su una VM esistente
Segui queste istruzioni per aggiornare i metadati di un'istanza VM specifica già esistente.
Console
- Nella console Google Cloud , vai alla pagina Istanze VM.
- Fai clic sull'istanza per cui 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 dei metadati esistenti.
- Salva le modifiche.
gcloud
L'aggiornamento dei metadati della VM con gcloud CLI è un'azione additiva. Specifica solo le chiavi dei metadati che vuoi aggiungere o modificare. Se una chiave che hai fornito esiste già, il valore della 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
infoo=bat
, utilizza:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
REST
Ottieni la fingerprint corrente e visualizza eventuali coppie chiave-valore esistenti per la VM. Per farlo, chiama il metodo
instances().get
.Una fingerprint è una stringa casuale di caratteri generata da Compute Engine e viene utilizzata per eseguire il blocco ottimistico. Per aggiornare la VM, devi fornire il valore della fingerprint corrispondente. La fingerprint cambia dopo ogni richiesta e, se fornisci una fingerprint non corrispondente, la richiesta viene rifiutata. In questo modo, si può 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
: il nome della VM
L'output è simile al seguente:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
Effettua 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 insieme alle 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 progetto.ZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM
Rimuovi i metadati personalizzati dalle VM
Questa sezione fornisce informazioni su come rimuovere le voci dei metadati personalizzati per le VM Compute Engine in uno dei seguenti modi:
- Rimuovi i metadati di progetto personalizzati per rimuovere i metadati personalizzati impostati per tutte le VM di 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 delle istanze personalizzati per rimuovere i metadati della VM impostati per una VM specifica.
Rimuovi i 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 dei metadati che vuoi rimuovere e fai clic sul pulsante di eliminazione
accanto alla voce.Ripeti questo passaggio per ogni voce di metadati che vuoi rimuovere.
Per completare la rimozione delle voci dei metadati di progetto personalizzati, 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 dei metadati personalizzati per chiavi specifiche,
specifica queste chiavi utilizzando il flag
--keys
ed escludi i valori di quelle 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 delle istanze personalizzati che vuoi rimuovere.
Rimuovi i metadati di zona personalizzati
Puoi rimuovere i metadati di zona personalizzati utilizzando Google Cloud CLI o REST.
gcloud
Per rimuovere i metadati di zona personalizzati, utilizza il comando
gcloud compute project-zonal-metadata remove
e specifica tutte le chiavi dei metadati che vuoi rimuovere utilizzando 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 da cui vuoi rimuovere i metadati di zonaKEY1
,KEY2
...: le chiavi dei metadati di zona personalizzati che vuoi rimuovere
Dopo aver eseguito il comando, se per una delle chiavi specificate sono disponibili valori dei metadati di progetto, le VM nella zona specificata erediteranno questi valori. Se la voce dei metadati è stata impostata solo a livello di zona e non esiste 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
, con i seguenti metadati di progetto personalizzati:- Metadati di 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 il seguente 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
dispongono delle seguenti voci dei metadati di progetto personalizzati:"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-c"
REST
Ottieni la fingerprint corrente e visualizza eventuali coppie chiave-valore esistenti per il progetto nella zona.
Per eseguire il blocco ottimistico, devi fornire una fingerprint. Una fingerprint è una stringa casuale di caratteri generata da Compute Engine. La fingerprint cambia ogni volta che effettui una richiesta di aggiunta, aggiornamento o rimozione di metadati di zona e, se fornisci una fingerprint non corrispondente, Compute Engine rifiuta la richiesta.
Se non fornisci una fingerprint, viene eseguito un controllo di coerenza e la richiesta di eliminazione non va a buon fine. In questo modo, si può effettuare una sola richiesta alla volta, evitando conflitti. Questo comportamento corrisponde a
instances().setMetadata
, dove è sempre richiesta una fingerprint.Per ottenere la fingerprint corrente di un progetto, effettua una chiamata al 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 da cui vuoi rimuovere i metadati di zona
Di seguito è riportato un esempio di output per questa richiesta:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
Per rimuovere i metadati di zona personalizzati, effettua una richiesta
PATCH
al metodoinstanceSettings().patch
escludendo le chiavi dei metadati per le quali vuoi rimuovere i metadati di zona dal corpo della richiesta. 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 dei metadati personalizzati esistenti per le quali vuoi rimuovere i metadati di zona. Devi aggiungere la stringametadata.items.
come prefisso per ogni chiave, ad esempiometadata.items.key1,metadata.items.key3
.Nel corpo della richiesta, fornisci solo il valore attuale della fingerprint. Escludi tutte le chiavi dei metadati personalizzati specificate nella maschera di aggiornamento. Se includi una delle chiavi dei metadati sia nella maschera di aggiornamento sia nel corpo della richiesta, Compute Engine non rimuove i metadati di zona per queste 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 da cui vuoi rimuovere i metadati di zona.PREFIXED_METADATA_KEYS
: l'elenco di tutte le chiavi dei metadati personalizzati esistenti per le quali vuoi rimuovere i metadati di zona, dove ogni chiave ha come prefisso la stringametadata.items.
. Per assicurarti che la richiesta di eliminazione vada a buon fine, escludi queste chiavi dei metadati dal corpo della richiesta. Se includi una delle chiavi dei metadati sia nella maschera di aggiornamento sia nel corpo della richiesta, Compute Engine non rimuove i metadati di zona per queste chiavi.Ad esempio, supponiamo che le tue chiavi dei metadati attuali con metadati di zona siano
key-1
,key-2
,key-3
ekey-4
e che tu voglia rimuovere le voci dei 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 attuale della fingerprint.
Dopo aver effettuato la richiesta, se per una delle chiavi specificate sono disponibili valori dei metadati di progetto, le VM nella zona specificata erediteranno questi valori. Se la chiave dei metadati è stata impostata solo a livello di zona e non esiste 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
, con i seguenti metadati di progetto personalizzati:- Metadati di 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
ekey-2
nella zonaus-central1-a
, effettua la seguente richiestaPATCH
.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": { } } }
Una volta eseguita la richiesta, le VM nella zona
us-central1-a
dispongono dei seguenti metadati personalizzati. Le VM ereditano i valori dei metadati di progetto perkey-1
ekey-2
, ma mantengono i metadati di zona perkey-3
ekey-4
.- Metadati di 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 i metadati delle istanze personalizzati
Puoi rimuovere i metadati delle istanze personalizzati 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 cui 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 delle istanze personalizzati, fai clic su Salva.
gcloud
Per rimuovere i metadati delle istanze personalizzati, utilizza il comando
gcloud compute instances remove-metadata
.- Se vuoi rimuovere le voci dei metadati personalizzati per chiavi specifiche,
specifica queste chiavi utilizzando il flag
--keys
ed escludi i valori di quelle 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 progettoZONE
: la zona della VMVM_NAME
: il nome della VMKEY1
,KEY2
…: le chiavi dei metadati delle istanze personalizzati che vuoi rimuovere.
REST
Ottieni la fingerprint corrente e visualizza eventuali coppie chiave-valore esistenti per la VM. Per farlo, chiama il metodo
instances().get
.Una fingerprint è una stringa casuale di caratteri generata da Compute Engine e viene utilizzata per eseguire il blocco ottimistico. Per aggiornare la VM, devi fornire il valore della fingerprint corrispondente. La fingerprint cambia dopo ogni richiesta e, se fornisci una fingerprint non corrispondente, la richiesta viene rifiutata. In questo modo, si può 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 della VMVM_NAME
: il 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" } ] }, ... }
Effettua una richiesta al metodo
instances().setMetadata
. Per la corretta elaborazione della richiesta, devi includere il valore corrente della fingerprint dei metadati.Per rimuovere tutte le coppie chiave-valore dei 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 delle istanze personalizzati sulla VM, escludi del tutto 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 progettoZONE
: la zona della VMVM_NAME
: il nome della VMFINGER_PRINT
: il valore attuale della fingerprintKEY1
,KEY2
…: le chiavi dei metadati delle istanze personalizzati che vuoi rimuovereVALUE1
,VALUE2
…: i valori delle chiavi dei metadati delle istanze personalizzati che vuoi rimuovere
Passaggi successivi
- Scopri di più sui metadati della VM.
- Scopri come visualizzare ed eseguire query sui metadati.
- Scopri di più su come eseguire script di avvio o script di arresto nel server dei metadati.
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-08-08 UTC.
-