Formatos de salida para los comandos de la CLI de Azure
La CLI de Azure usa JSON como formato de salida predeterminado, pero ofrece otros formatos. Use el parámetro --output (--out o -o) para dar formato a la salida de la CLI. Los valores de argumento y los tipos de salida son:
| --output | Descripción |
|---|---|
json |
Cadena JSON. Esta es la configuración predeterminada. |
jsonc |
JSON con colores. |
yaml |
YAML, una alternativa legible a JSON |
yamlc |
YAML con colores |
table |
Tabla ASCII con claves como encabezados de columna. |
tsv |
Valores separados por tabulaciones, sin claves |
none |
No hay resultados que no sean errores y advertencias |
Formato de salida JSON
En el ejemplo siguiente se muestra la lista de máquinas virtuales de sus suscripciones en el formato JSON predeterminado.
az vm list --output json
La salida siguiente tiene algunos campos que se omiten para mayor brevedad y se ha reemplazado la información de identificación.
[
{
"availabilitySet": null,
"diagnosticsProfile": null,
"hardwareProfile": {
"vmSize": "Standard_DS1"
},
"id": "/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010",
"instanceView": null,
"licenseType": null,
"location": "westus",
"name": "DemoVM010",
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/.../resourceGroups/demorg1/providers/Microsoft.Network/networkInterfaces/DemoVM010VMNic",
"primary": null,
"resourceGroup": "demorg1"
}
]
},
...
...
...
]
Formato de salida YAML
El formato yaml imprime la salida como YAML, un formato de serialización de datos de texto sin formato. YAML suele ser más fácil de leer que JSON y se corresponde fácilmente con ese formato. Algunas aplicaciones y los comandos de la CLI aceptan YAML como entrada de configuración, en lugar de JSON.
az vm list --out yaml
La salida siguiente tiene algunos campos que se omiten para mayor brevedad y se ha reemplazado la información de identificación.
- availabilitySet: null
diagnosticsProfile: null
hardwareProfile:
vmSize: Standard_DS1_v2
id: /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010
identity: null
instanceView: null
licenseType: null
location: westus
name: ExampleVM1
networkProfile:
networkInterfaces:
- id: /subscriptions/.../resourceGroups/DemoRG1/providers/Microsoft.Network/networkInterfaces/DemoVM010Nic
primary: null
resourceGroup: DemoRG1
...
...
Formato de salida de tabla
El formato table imprime la salida como una tabla ASCII, lo que facilita la lectura y la búsqueda. Los objetos anidados no se incluyen en la tabla de salida, pero se pueden filtrar como parte de una consulta. Algunos campos no se incluyen en la tabla, por lo que este formato es adecuado cuando se desea una revisión rápida de los datos con posibilidad de que el usuario realice búsquedas.
az vm list --out table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
Puede usar el parámetro --query para personalizar las propiedades y las columnas que desea mostrar en la salida de la lista. En el ejemplo siguiente se muestra cómo seleccionar el nombre de máquina virtual y el nombre del grupo de recursos en el comando list.
az vm list --query "[].{resource:resourceGroup, name:name}" -o table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Nota
Algunas claves no se imprimen en la vista de tabla de forma predeterminada. Se trata de id, type y etag. Si necesita ver estos datos en la salida, puede usar la característica de reentrada de claves de JMESPath para cambiar el nombre de la clave y evitar el filtrado.
az vm list --query "[].{objectID:id}" -o table
Para más información sobre el uso de consultas para filtrar los datos, consulte Uso de consultas JMESPath con la CLI de Azure.
Formato de salida TSV
El formato de salida tsv devuelve valores separados por tabulaciones y nueva línea sin formato adicional, claves ni otros símbolos. Este formato facilita el consumo de la salida en otros comandos y herramientas que necesitan procesar el texto de alguna forma. Al igual que el formato table, tsv no imprime objetos anidados.
Mediante el ejemplo anterior con la opción tsv se genera un resultado separado por tabulaciones.
az vm list --out tsv
None None /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010 None None westus DemoVM010 None Succeeded DEMORG1 None Microsoft.Compute/virtualMachines cbd56d9b-9340-44bc-a722-25f15b578444
None None /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm212 None None westus demovm212 None Succeeded DEMORG1 None Microsoft.Compute/virtualMachines 4bdac85d-c2f7-410f-9907-ca7921d930b4
None None /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm213 None None westus demovm213 None Succeeded DEMORG1 None Microsoft.Compute/virtualMachines 2131c664-221a-4b7f-9653-f6d542fbfa34
None None /subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo001VM None None westus KBDemo001VM None Succeeded RGDEMO001 None Microsoft.Compute/virtualMachines 14e74761-c17e-4530-a7be-9e4ff06ea74b
None None /subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo020 None None westus KBDemo020 None Succeeded RGDEMO001 None Microsoft.Compute/virtualMachines 36baa9-9b80-48a8-b4a9-854c7a858ece
Una restricción del formato de salida TSV es que no hay ninguna garantía del orden de salida. La CLI hace todo lo posible para conservar el orden; para ello, ordena alfabéticamente las claves en la respuesta JSON y, después, imprime sus valores en orden para la salida de TSV. Sin embargo, esto no garantiza que el orden sea siempre idéntico, ya que el formato de respuesta de servicio de Azure puede cambiar.
Para aplicar un orden coherente, deberá usar el parámetro --query y el formato de lista de selección múltiple. Si un comando de la CLI devuelve un solo diccionario JSON, use el formato general [key1, key2, ..., keyN] para forzar el orden de las claves. Para los comandos de la CLI que devuelven una matriz, use el formato general [].[key1, key2, ..., keyN] para ordenar los valores de columna.
Por ejemplo, para ordenar la información mostrada anteriormente por identificador, ubicación, grupo de recursos y nombre de máquina virtual:
az vm list --out tsv --query '[].[id, location, resourceGroup, name]'
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010 westus DEMORG1 DemoVM010
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm212 westus DEMORG1 demovm212
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm213 westus DEMORG1 demovm213
/subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo001VM westus RGDEMO001 KBDemo001VM
/subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo020 westus RGDEMO001 KBDemo020
El ejemplo siguiente muestra cómo se puede canalizar la salida tsv a otros comandos en Bash. Se utiliza la consulta para filtrar la salida y forzar el orden, grep selecciona los elementos que tienen el texto "RGD" y el comando cut selecciona el cuarto campo para mostrar el nombre de la máquina virtual en la salida.
az vm list --out tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
Establecimiento del formato de salida predeterminado
Use el comando az config set interactivo para configurar el entorno y establecer la configuración predeterminada de los formatos de salida. El formato de salida predeterminado es json.
az config set core.output=<format>
Welcome to the Azure CLI! This command will guide you through logging in and setting some default values.
Your settings can be found at /home/defaultuser/.azure/config
Your current configuration is as follows:
...
Do you wish to change your settings? (y/N): y
What default output format would you like?
[1] json - JSON formatted output that most closely matches API responses.
[2] jsonc - Colored JSON formatted output that most closely matches API responses.
[3] table - Human-readable output format.
[4] tsv - Tab- and Newline-delimited. Great for GREP, AWK, etc.
[5] yaml - YAML formatted output. An alternative to JSON. Great for configuration files.
[6] yamlc - Colored YAML formatted output. An alternative to JSON. Great for configuration files.
[7] none - No output, except for errors and warnings.
Please enter a choice [1]:
Para más información sobre cómo configurar el entorno, consulte Configuración de la CLI de Azure.