Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 de Azure. Los valores de argumento y los tipos de salida son:
--salida | Descripción |
---|---|
json |
Cadena JSON. Esta es la configuración predeterminada. |
jsonc |
JSON con colores. |
table |
Tabla ASCII con claves como encabezados de columna. |
tsv |
Valores separados por tabuladores, sin claves |
yaml |
YAML, una alternativa legible para los humanos a JSON |
yamlc |
YAML con colores |
none |
No hay resultados que no sean errores y advertencias |
Advertencia
Para evitar exponer secretos, como claves de API y credenciales, utilice un formato de salida como none
o almacene la salida del comando en una variable.
Nota: Algunos entornos de CI/CD podrían almacenar la salida de los comandos ejecutados en los registros. Se recomienda confirmar el contenido de esos archivos de registro y quién tiene acceso a los registros. Para obtener más información, consulte Formulario de salida None.
Formato de salida JSON (valor predeterminado)
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 siguiente salida tiene algunos campos omitidos para abreviar, y la información identificativa ha sido reemplazada.
[
{
"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
genera la salida en YAML, un formato de serialización de datos sencillo. YAML tiende a ser más fácil de leer que JSON y se asigna a ese formato. Algunas aplicaciones y comandos de la CLI de Azure toman YAML como entrada de configuración, en lugar de JSON.
az vm list --output yaml
La siguiente salida tiene algunos campos omitidos para abreviar, y la información identificativa ha sido reemplazada.
- 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 table
formato imprime la salida como una tabla ASCII, lo que facilita la lectura y el examen. 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 --output 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}" --output 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. Estas claves incluyen id
, type
y etag
. Si los necesita en su salida, puede usar la función de re-llaveo JMESPath para cambiar el nombre de clave y evitar el filtrado.
az vm list --query "[].{objectID:id}" --output 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 saltos de línea, sin formato adicional, ni claves u otros símbolos. Este formato facilita la integración del resultado en otros comandos y herramientas que necesitan procesar el texto de alguna forma. Al igual que el formato table
, tsv
no imprime objetos anidados.
Usando el ejemplo anterior con la opción tsv
, se genera un resultado separado por tabulaciones.
az vm list --output 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 en el orden del resultado. La CLI de Azure intenta mantener el orden clasificando las claves del JSON de respuesta alfabéticamente y mostrando sus valores en orden para la salida tsv
. No hay ninguna garantía de que el orden sea siempre idéntico, ya que el formato de respuesta del servicio de Azure puede cambiar.
Para aplicar un orden coherente, debe usar el --query
parámetro y el formato de lista de selección múltiple . Cuando un comando de la CLI de Azure devuelve un único diccionario JSON, use el formato [key1, key2, ..., keyN]
general para forzar un orden de clave. Para los comandos de la CLI de Azure que devuelven una matriz, use el formato [].[key1, key2, ..., keyN]
general para ordenar los valores de columna.
Por ejemplo, para ordenar esta información mostrada por identificador, ubicación, grupo de recursos y nombre de máquina virtual:
az vm list --output 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
En el ejemplo siguiente se muestra cómo canalizar tsv
la salida a otros comandos de Bash. La consulta se usa para filtrar la salida y forzar la ordenación, grep
selecciona los elementos que tienen texto RGD
en ellos y, a continuación, el cut
comando selecciona el cuarto campo para mostrar el nombre de la máquina virtual en la salida.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
El formato de salida tsv
se usa a menudo al asignar valores a variables. En este ejemplo se obtiene el identificador de suscripción activo y se almacena en una variable para su uso en un script.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
Para obtener más --query
ejemplos de parámetros, consulte Cómo consultar la salida del comando de la CLI de Azure.
Formato de salida: Ninguno
Algunos comandos de la CLI de Azure proporcionan información de salida que debe proteger. Estos son cuatro ejemplos:
- Contraseñas
- Cadenas de conexión
- Secretos
- Teclas
Para proteger los secretos y las claves al usar comandos de la CLI de Azure, elija una de estas opciones:
Opción | Ventajas | Caso de uso |
---|---|---|
--output none formato de salida |
Impide que la información confidencial se muestre en la consola. Si se produce un error en el comando, seguirá recibiendo mensajes de error. | 1. Úselo cuando la salida del comando pueda recuperarse más adelante. |
2. Úselo cuando no necesite salida. | ||
3. Una opción habitual cuando se utiliza una identidad administrada o una entidad de servicio para administrar recursos de Azure. | ||
Parámetro --query |
Almacena la salida en una variable. | 1. Se utiliza cuando la salida del comando no puede ser recuperada posteriormente. |
2. Use cuando necesite usar un valor de salida de comando en un script. |
Recuperar información de seguridad más adelante
Algunos secretos de Azure se pueden recuperar más adelante. Un ejemplo es secretos almacenados en Azure Key Vault. En este ejemplo, cree un secreto de Azure Key Vault mediante az keyvault secret set con la opción --output none
. Puede recuperar el secreto más tarde utilizando el comando az keyvault secret show.
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
Almacenar información de seguridad en una variable
El uso de --query
para almacenar la salida en una variable no es técnicamente un formato de salida. Es una solución para proteger los secretos y es una alternativa al uso de --output none
. Por ejemplo, al restablecer una credencial de entidad de servicio, la contraseña no se puede recuperar de nuevo.
Restablezca una credencial de entidad de servicio que devuelva la salida en el formato JSON predeterminado.
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
Salida de la consola que muestra la nueva contraseña en la consola.
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
Una mejor solución es devolver información sensible a una variable.
# Bash Script
# reset service principal credentials returning results to a variable
myNewPassword=$(az ad sp credential reset --id myServicePrincipalID --query password --output tsv)
# Display the new password (remove this line in production for security)
echo "New password: $myNewPassword"
Para obtener más ejemplos sobre cómo almacenar la salida en una variable, consulte Uso correcto de la CLI de Azure: pasar valores a otro comando. Para más información sobre la --query
sintaxis de parámetros, consulte Cómo consultar la salida del comando de la CLI de Azure.
Establecimiento del formato de salida predeterminado
Los comandos de la CLI de Azure proporcionan una salida que se puede controlar de dos maneras:
Control de salida | Ventajas | Instrucciones |
---|---|---|
Configuración global | Seleccione un valor de salida predeterminado que utilice con más frecuencia para no tener que proporcionar continuamente un parámetro --output para cada comando de referencia. |
Defina un formato de salida predeterminado mediante az config set. |
Parámetro de comando | Especifique la salida en el nivel de comando y proporcione la máxima flexibilidad a los scripts. Puede controlar la salida de la consola y la entrada de variables para cada comando de referencia. | Invalide la configuración predeterminada mediante el parámetro de un comando de referencia --output . |
La salida predeterminada de la CLI de Azure es json
. Establezca la salida predeterminada en none
cuando no se necesite la salida de la consola.
az config set core.output=none
Puede sobrescribir la salida predeterminada de cualquier comando de referencia de la CLI de Azure mediante el --output
parámetro . Este es un script de comandos que modifican y prueban la salida del comando:
# set your default output to table
az config set core.output=table
# show your active subscription in table format
# notice how only a subset of properties are returned in the table
az account show
# override your table default and show your active subscription in jsonc format
az account show --output jsonc
# reset your default output to json
az config set core.output=json
Consulte también
- Configuración de la CLI de Azure
- Cómo consultar la salida de un comando de Azure CLI
- Sugerencias para usar correctamente la CLI de Azure