Obtención de información de la máquina virtual con consultas
Ahora que se ha creado una máquina virtual, se puede recuperar información detallada al respecto. El comando común para obtener información de un recurso es show
.
az vm show --name $vmName --resource-group $resourceGroup
Una máquina virtual tiene muchas propiedades que pueden ser difíciles de analizar visualmente. El código JSON devuelto contiene información sobre la autenticación, el almacenamiento de la interfaz de red, etc. Lo más importante, contiene los identificadores de objeto de Azure de los recursos a los que está conectada la máquina virtual. Los identificadores de objeto permiten acceder a estos recursos directamente para más información acerca de la configuración y las funcionalidades de la máquina virtual.
Para extraer el identificador de objeto, se usa el argumento --query
. Las consultas se escriben en el lenguaje de consulta JMESPathPara empezar, obtenga el identificador del objeto controlador de interfaz de red (NIC).
az vm show --name $vmName \
--resource-group $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
Hay muchas cosas en este caso al agregar la consulta. Cada parte hace referencia a una clave en la salida JSON o es un operador JMESPath.
networkProfile
es una clave del código JSON de nivel superior, que tienenetworkInterfaces
como subclave. Si un valor JSON es un diccionario, se hace referencia a sus claves desde la clave primaria con el operador.
.- El valor
networkInterfaces
es una matriz, por lo que se aplana con el operador[]
. Este operador ejecuta el resto de la consulta en cada elemento de la matriz. En este caso, obtiene el valorid
de cada elemento de la matriz.
En el formato de salida tsv
(valores separados por tabulaciones) se garantiza que solo se incluyen los datos de resultados y el espacio en blanco que consta de tabulaciones y líneas nuevas.
Como el valor devuelto es una sola cadena vacía, resulta seguro asignarlo directamente a una variable de entorno.
Para más información sobre cómo consultar la salida de la CLI de Azure, consulte Cómo consultar la salida de comandos de la CLI de Azure mediante una consulta de JMESPath
Continúe y asigne a continuación el identificador de objeto del NIC a una variable de shell.
nicId=$(az vm show \
-n $vmName \
-g $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
En este ejemplo también se muestra el uso de argumentos cortos. Puede usar -g
en lugar de --resource-group
, -n
en lugar de --name
y -o
en lugar de --output
.