Aggiornamento dei metadati delle istanze

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

Quando si crea un'istanza utilizzando l'operazione LaunchInstance, è possibile specificare 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 le coppie chiave/stringa valore. L'attributo extendedMetadata supporta gli oggetti JSON nidificati. La dimensione combinata di questi due attributi può essere un massimo di 32.000 byte.

Potrebbe essere necessario un minuto prima che le modifiche si riflettano nel servizio di metadati dell'istanza.

Per le autorizzazioni, vedere Criteri IAM necessari 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, quindi è 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 di metadati esistenti in tale attributo. Non è possibile specificare due volte un valore per la stessa chiave di metadati, poiché l'operazione UpdateInstance non riesce 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 sono state specificate le seguenti coppie 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, in quanto ciò causerà la mancata riuscita dell'operazione poiché tale chiave esiste già. Se si specificano valori per l'attributo metadati, è necessario includere la chiave o il valore myCustomMetadataKey per mantenerlo nei metadati dell'istanza. In questo caso, è possibile specificarlo in uno degli 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 un secondo momento. 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 le chiavi, altrimenti l'operazione UpdateInstance non riuscirà.

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

Quando si utilizza l'operazione UpdateInstance, si consiglia quanto riportato di seguito.

  • Utilizzare l'operazione GetInstance per recuperare i metadati personalizzati esistenti per l'istanza per 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 illustra questo aspetto, vedere UpdateInstanceExample in SDK per Java.

  • A meno che non si aggiornino metadati personalizzati aggiunti utilizzando l'attributo metadata, utilizzare l'attributo extendedMetadata per aggiungere metadati personalizzati. Altrimenti è 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 omettono i valori per queste chiavi riservate o si specificano valori diversi, la chiamata UpdateInstance non riuscirà.