Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ora che è stata creata una macchina virtuale, è possibile recuperarne informazioni dettagliate. Il comando comune per ottenere informazioni da una risorsa è show
.
az vm show --name $vmName --resource-group $resourceGroup
Una macchina virtuale ha molte proprietà che possono essere difficili da analizzare visivamente. Il codice JSON restituito contiene informazioni sull'autenticazione, sull'archiviazione dell'interfaccia di rete e altro ancora. Soprattutto, contiene gli ID oggetto di Azure per le risorse a cui è connessa la macchina virtuale. Gli ID oggetto consentono di accedere direttamente a queste risorse per ottenere altre informazioni sulla configurazione e sulle funzionalità della macchina virtuale.
Per estrarre l'ID oggetto, viene utilizzato l'argomento --query
. Le query vengono scritte nel linguaggio di query JMESPathIniziare con ottenere l'ID oggetto NIC (Network Interface Controller).
az vm show --name $vmName \
--resource-group $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
C'è molto da fare, aggiungendo semplicemente la query. Ogni parte fa riferimento a una chiave nel codice JSON di output o è un operatore JMESPath.
-
networkProfile
è una chiave del codice JSON di primo livello, che hanetworkInterfaces
come sottochiave. Se un valore JSON è un dizionario, viene fatto riferimento alle relative chiavi dalla chiave padre con l'operatore.
. - Il
networkInterfaces
valore è una matrice, quindi viene appiattito con l'operatore[]
. Questo operatore esegue il resto della query su ogni elemento della matrice. In questo caso, ottiene ilid
valore di ogni elemento della matrice.
Il formato di tsv
output (valori delimitati da tabulazioni) è garantito solo includere i dati dei risultati e gli spazi vuoti costituiti da tabulazioni e righe nuove.
Poiché il valore restituito è una singola stringa bare, è possibile assegnare direttamente a una variabile della shell.
Per ulteriori informazioni su come eseguire query sull'output della CLI di Azure, vedere Come eseguire query sull'output dei comandi della CLI di Azure usando una query JMESPath
Procedere e assegnare l'ID oggetto NIC a una variabile della shell.
nicId=$(az vm show \
-n $vmName \
-g $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
In questo esempio viene inoltre illustrato l'uso di argomenti brevi. È possibile usare -g
anziché --resource-group
, -n
anziché --name
, e -o
invece di --output
.