Aggiornamento metadati istanza

Puoi aggiungere e aggiornare metadati personalizzati per un'istanza di computazione utilizzando la documentazione CLI (Command Line Interface) o la documentazione dell'API REST.

Quando si crea un'istanza utilizzando l'operazione LaunchInstance, è possibile specificare i metadati personalizzati per l'istanza negli attributi metadata o extendedMetadata del tipo di dati LaunchInstanceDetails.

Per aggiornare i metadati di un'istanza, utilizzare l'operazione UpdateInstance, specificando i metadati personalizzati negli attributi metadata o extendedMetadata del tipo di dati UpdateInstanceDetails.

L'attributo metadata supporta coppie di stringhe chiave/valore. L'attributo extendedMetadata supporta oggetti JSON nidificati. La dimensione combinata di questi due attributi può essere massima di 32.000 byte.

Potrebbero essere necessari fino a un minuto per riflettere le modifiche nel servizio metadati dell'istanza.

Per le autorizzazioni, vedere Criterio IAM obbligatorio per l'utilizzo delle istanze.

Utilizzo dell'API

Quando si utilizza l'operazione UpdateInstance, i metadati dell'istanza saranno la combinazione dei valori specificati negli attributi metadata o extendedMetadata del tipo di dati UpdateInstanceDetails. Qualsiasi set di coppie chiave/valore specificato per questi attributi nell'operazione UpdateInstance sostituirà i valori esistenti per questi attributi, pertanto è necessario includere tutti i valori dei metadati per l'istanza in ogni chiamata, non solo quelli che si desidera aggiungere. Se si lascia vuoto l'attributo durante la chiamata a UpdateInstance, verranno utilizzati i valori dei metadati esistenti in tale attributo. Non è possibile specificare due volte un valore per la stessa chiave di metadati, poiché l'operazione UpdateInstance non riuscirà a causa della presenza di chiavi duplicate.

Per comprendere questo aspetto, considerare lo scenario di esempio in cui è stata creata un'istanza utilizzando l'operazione LaunchInstance e è stata specificata la seguente coppia chiave/valore per l'attributo metadata :

"myCustomMetadataKey" : "myCustomMetadataValue"

Se si chiama quindi l'operazione UpdateInstance e si aggiungono nuovi metadati specificando ulteriori coppie chiave/valore nell'attributo extendedMetadata, ma si lascia vuoto l'attributo metadata , non includere la chiave/valore myCustomMetadataKey nell'attributo extendedMetadata, poiché questa operazione non riuscirà poiché tale chiave esiste già. Se si specificano valori per l'attributo dei metadati, è necessario includere la chiave o il valore myCustomMetadataKey per mantenerlo nei metadati dell'istanza. In questo caso, è possibile specificarlo in uno dei due attributi.

Esistono due chiavi riservate, user_data e ssh_authorized_keys, che possono essere impostate solo per un'istanza al momento dell'avvio e non possono essere aggiornate in seguito. Se si utilizza l'attributo metadati per aggiungere o aggiornare i metadati per un'istanza, è necessario assicurarsi di includere i valori specificati al momento dell'avvio per entrambe queste chiavi, altrimenti l'operazione UpdateInstance non riuscirà.

Procedure consigliate per l'aggiornamento dei metadati di un'istanza

Quando si utilizza l'operazione UpdateInstance, si consiglia quanto segue:

  • Utilizzare l'operazione GetInstance per recuperare i metadati personalizzati esistenti per l'istanza e assicurarsi di includere i valori che si desidera gestire negli attributi appropriati quando si chiama UpdateInstance. I valori dei metadati vengono restituiti negli attributi metadata e extendedMetadata per l'istanza. Per un esempio di codice che dimostri questa funzionalità, vedere UpdateInstanceExample in SDK for Java.

  • A meno che non si stiano aggiornando i metadati personalizzati aggiunti mediante l'attributo metadata, utilizzare l'attributo extendedMetadata per aggiungere metadati personalizzati. In caso contrario, è necessario includere i valori dell'ora di avvio per le chiavi riservate user_data e ssh_authorized_keys. Se si utilizza l'attributo metadata per aggiungere valori e si escludono i valori per queste chiavi riservate o si specificano valori diversi per esse, la chiamata UpdateInstance non riuscirà.