Obter informações da VM através de consultas
Agora que criou uma VM, pode obter informações detalhadas sobre a mesma. O comando comum para obter informações de um recurso é show
.
az vm show --name $vmName --resource-group $resourceGroup
Uma máquina virtual tem muitas propriedades que podem ser difíceis de analisar visualmente. O JSON retornado contém informações sobre autenticação, armazenamento de interface de rede e muito mais. Mais importante ainda, contém os IDs de objeto do Azure dos recursos a que a VM está ligada. Os IDs de objeto permitem aceder a estes recursos diretamente para obter mais informações sobre a configuração e as capacidades da VM.
Para extrair o ID do objeto, o --query
argumento é usado. As consultas são escritas na linguagemde consulta JMESPath Comece com a obtenção do ID do objeto do controlador de interface de rede (NIC).
az vm show --name $vmName \
--resource-group $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
Temos muitas informações aqui, só por adicionarmos a consulta. Cada parte referencia uma chave no JSON de saída, ou corresponde a um operador JMESPath.
networkProfile
é uma chave do JSON de nível superior, que temnetworkInterfaces
como uma subchave. Se um valor JSON é um dicionário, as respetivas chaves são referenciadas a partir da chave principal com o operador.
.- O
networkInterfaces
valor é uma matriz, por isso é nivelado com o[]
operador. Este operador executa o resto da consulta em cada elemento de matriz. Neste caso, obtém o valorid
de cada elemento de matriz.
O formato de saída tsv
(valores separados por tabulação) apenas inclui garantidamente os dados de resultado e o espaço em branco constituído por tabulações e novas linhas.
Como o valor retornado é uma única cadeia de caracteres nua, é seguro atribuir diretamente a uma variável de shell.
Para obter mais informações sobre como consultar a saída da CLI do Azure, consulte Como consultar a saída do comando da CLI do Azure usando uma consulta JMESPath
Vá em frente e atribua o ID do objeto NIC a uma variável de shell agora.
nicId=$(az vm show \
-n $vmName \
-g $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
Este exemplo também demonstra a utilização de argumentos curtos. Pode utilizar -g
em vez de --resource-group
, -n
em vez de --name
e -o
em vez de --output
.