Compartilhar via


Obter informações de VM com consultas

Agora que você criou uma VM, informações detalhadas sobre ela podem ser recuperadas. 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, ele contém as IDs de objeto do Azure para recursos aos quais a VM está conectada. As IDs de objeto permitem acessar esses recursos diretamente para obter mais informações sobre a configuração e os recursos da VM.

Para extrair a ID do objeto, o --query argumento é usado. As consultas são escritas na linguagem de consulta JMESPath. Comece com a obtenção da ID do objeto NIC (controlador de interface de rede).

az vm show --name $vmName \
  --resource-group $resourceGroup \
  --query 'networkProfile.networkInterfaces[].id' \
  --output tsv

Muita coisa acontece aqui só de adicionar a consulta. Cada parte dele faz referência a uma chave no JSON de saída ou é um operador JMESPath.

  • networkProfile é uma chave do JSON de nível superior, que tem networkInterfaces como subchave. Se um valor JSON for um dicionário, suas chaves serão referenciadas a partir da chave pai com o operador ..
  • O valor networkInterfaces é uma matriz, portanto, está sendo achatado com o operador []. Esse operador executa o restante da consulta em cada elemento de matriz. Nesse caso, ele obtém o id valor de cada elemento de matriz.

O formato tsv de saída (valores separados por tabulação) tem a garantia de incluir apenas os dados de resultado e o espaço em branco que consistem em guias 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 a 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 o uso de argumentos curtos. Você pode usar -g em vez de --resource-group, -n em vez de --name, e -o em vez de --output.