Formatos de saída para os comandos da CLI do AzureOutput formats for Azure CLI commands

A CLI do Azure utiliza JSON como formato de saída predefinido, mas oferece outros formatos.The Azure CLI uses JSON as its default output format, but offers other formats. Utilize o parâmetro --output (--out ou -o) para formatar a saída da CLI.Use the --output (--out or -o) parameter to format CLI output. Seguem-se os valores de argumentos e os tipos de saída:The argument values and types of output are:

--output--output DescriçãoDescription
json Cadeia de carateres JSON.JSON string. Esta definição é a padrãoThis setting is the default
jsonc JSON coloridoColorized JSON
yaml YAML, uma alternativa legível por máquina à JSONYAML, a machine-readable alternative to JSON
table Tabela ASCII com teclas como títulos de colunaASCII table with keys as column headings
tsv Valores separado por tabulações, sem chavesTab-separated values, with no keys
none Nenhuma saída que não erros e avisosNo output other than errors and warnings

Formato de saída JSONJSON output format

O exemplo seguinte mostra a lista de máquinas virtuais nas suas subscrições no formato Padrão JSON.The following example displays the list of virtual machines in your subscriptions in the default JSON format.

az vm list --output json

A seguinte saída tem alguns campos omitidos para efeitos de brevidade e as informações de identificação foram substituídas.The following output has some fields omitted for brevity, and identifying information replaced.

[
  {
    "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 saída YAMLYAML output format

O formato yaml imprime a saída como YAML, um formato de serialização de dados de texto simples.The yaml format prints output as YAML, a plain-text data serialization format. O YAML tende a ser mais fácil de ler do que o JSON e facilmente mapeia para esse formato.YAML tends to be easier to read than JSON, and easily maps to that format. Algumas aplicações e os comandos da CLI utilizam o YAML como uma entrada de configuração, em vez do JSON.Some applications and CLI commands take YAML as configuration input, instead of JSON.

az vm list --out yaml

A seguinte saída tem alguns campos omitidos para efeitos de brevidade e as informações de identificação foram substituídas.The following output has some fields omitted for brevity, and identifying information replaced.

- 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 saída da tabelaTable output format

O formato table imprime a saída como uma tabela ASCII, o que facilita a leitura e análise.The table format prints output as an ASCII table, making it easy to read and scan. Os objetos aninhados não são incluídos na saída da tabela, mas ainda assim podem ser filtrados como parte de uma consulta.Nested objects aren't included in table output, but can still be filtered as part of a query. Alguns campos não são incluídos na tabela, pelo que este formato é mais indicado quando quiser uma descrição geral rápida dos dados num formato pesquisável por humanos.Some fields aren't included in the table, so this format is best when you want a quick, human-searchable overview of data.

az vm list --out table
Name         ResourceGroup    Location
-----------  ---------------  ----------
DemoVM010    DEMORG1          westus
demovm212    DEMORG1          westus
demovm213    DEMORG1          westus
KBDemo001VM  RGDEMO001        westus
KBDemo020    RGDEMO001        westus

Pode utilizar o parâmetro --query para personalizar as propriedades e as colunas que pretende mostrar na saída de lista.You can use the --query parameter to customize the properties and columns you want to show in the list output. O exemplo a seguir mostra como selecionar apenas o Nome da VM e o Nome do Grupo de Recursos no comando list.The following example shows how to select just the VM Name and the Resource Group Name in the list command.

az vm list --query "[].{resource:resourceGroup, name:name}" -o table
Resource    Name
----------  -----------
DEMORG1     DemoVM010
DEMORG1     demovm212
DEMORG1     demovm213
RGDEMO001   KBDemo001VM
RGDEMO001   KBDemo020

Note

Algumas chaves não são impressas na vista de tabela por predefinição.Some keys are not printed in the table view by default. São id, type, e etag.These are id, type, and etag. Se precisar delas na sua saída, pode sempre utilizar a funcionalidade de novas chaves JMESPath para alterar o nome da chave e evitar a filtragem.If you need to see these in your output, you can use the JMESPath re-keying feature to change the key name and avoid filtering.

az vm list --query "[].{objectID:id}" -o table

Para saber mais sobre como utilizar as consultas para filtrar dados, veja Utilizar consultas JMESPath com a CLI do Azure.For more about using queries to filter data, see Use JMESPath queries with Azure CLI.

Formato de saída TSVTSV output format

O formato de saída tsv devolve valores separados por tabulações e por novas linhas sem formatações, chaves ou outros símbolos adicionais.The tsv output format returns tab- and newline-separated values without additional formatting, keys, or other symbols. Este formato permite consumir facilmente a saída noutros comandos e ferramentas que têm de processar, de alguma forma, o texto.This format makes it easy to consume the output into other commands and tools that need to process the text in some form. À semelhança do formato table, tsv não imprime objetos aninhados.Like the table format, tsv doesn't print nested objects.

Com base no exemplo anterior, a opção tsv gera uma saída de resultados separados por tabulações.Using the preceding example with the tsv option outputs the tab-separated result.

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

Uma restrição do formato de saída da TSV é que não há uma garantia na encomenda de saída.One restriction of the TSV output format is that there isn't a guarantee on output ordering. O CLI faz um esforço melhor para preservar a encomenda, classificando as teclas na resposta JSON alphebeticamente, e, em seguida, imprimindo os seus valores para a saída de TSV.The CLI makes a best effort to preserve ordering by sorting keys in the response JSON alphebetically, and then printing their values in order for TSV output. Esta não é uma garantia de que a encomenda é sempre idêntica, uma vez que o formato de resposta ao serviço Azure pode mudar.This isn't a guarantee that the order is always identical though, since the Azure service response format may change.

Para impor uma encomenda consistente, terá de --query utilizar o parâmetro e o formato da lista multiselecção.In order to enforce consistent ordering, you'll need to use the --query parameter and the multiselect list format. Quando um comando CLI devolve um único dicionário JSON, utilize o formato [key1, key2, ..., keyN] geral para forçar uma ordem-chave.When a CLI command returns a single JSON dictionary, use the general format [key1, key2, ..., keyN] to force a key order. Para comandos CLI que devolvam [].[key1, key2, ..., keyN] uma matriz, utilize o formato geral para encomendar valores de coluna.For CLI commands which return an array, use the general format [].[key1, key2, ..., keyN] to order column values.

Por exemplo, para encomendar as informações acima apresentadas por ID, localização, grupo de recursos e nome VM:For example, to order the information displayed above by ID, location, resource group, and VM name:

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

O exemplo seguinte mostra de que modo a saída de tsv pode ser enviada para outros comandos em bash.The next example shows how tsv output can be piped to other commands in bash. A consulta é usada para filtrar grep a saída e forçar a encomenda, seleciona cut itens que têm texto "RGD" neles, em seguida, o comando seleciona o quarto campo para mostrar o nome do VM na saída.The query is used to filter output and force ordering, grep selects items that have text "RGD" in them, then the cut command selects the fourth field to show the name of the VM in output.

az vm list --out tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020

Definir o formato de saída predefinidoSet the default output format

Utilize o comando interativo az configure para configurar o seu ambiente e estabelecer definições predefinidas para os formatos de saída.Use the interactive az configure command to set up your environment and establish default settings for output formats. O formato de saída predefinido é json.The default output format is json.

az configure
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] none - No output, except for errors and warnings.
Please enter a choice [1]:

Para saber mais sobre como configurar o seu ambiente, veja Configuração da CLI do Azure.To learn more about configuring your environment, see Azure CLI configuration.