Форматы выходных данных для команд Azure CLIOutput formats for Azure CLI commands

Azure CLI использует JSON в качестве формата выходных данных по умолчанию, но поддерживает и другие форматы.The Azure CLI uses JSON as its default output format, but offers other formats. Параметр --output (--out или -o) позволяет форматировать данные, выводимые CLI.Use the --output (--out or -o) parameter to format CLI output. Ниже описаны значения аргументов и их типы:The argument values and types of output are:

--output--output ОПИСАНИЕDescription
json Строка в формате JSON.JSON string. Это значение по умолчанию.This setting is the default.
jsonc Выделенная цветом строка JSON.Colorized JSON.
yaml YAML, альтернативный JSON машиночитаемый формат.YAML, a machine-readable alternative to JSON.
table Таблица ASCII с ключами в качестве заголовков столбцов.ASCII table with keys as column headings.
tsv Значения, разделенные табуляцией, без ключей.Tab-separated values, with no keys

Формат выходных данных JSON.JSON output format

Следующий пример отображает список виртуальных машин в подписках в стандартном формате JSON.The following example displays the list of virtual machines in your subscriptions in the default JSON format.

az vm list --output json

Следующие выходные данные содержат некоторые поля, которые исключены для краткости, и замененные сведения для идентификации.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"
        }
      ]
    },
          ...
          ...
          ...
]

Формат выходных данных YAMLYAML output format

yamlВыходные данные отображаются в YAML, формате сериализации данных обычного текста.The yaml format prints output as YAML, a plain-text data serialization format. YAML легче для восприятия, чем JSON, и сопоставим с ним.YAML tends to be easier to read than JSON, and easily maps to that format. Входные данные конфигурации некоторых приложений и команд CLI задаются в формате YAML, а не JSON.Some applications and CLI commands take YAML as configuration input, instead of JSON.

az vm list --out yaml

Следующие выходные данные содержат некоторые поля, которые исключены для краткости, и замененные сведения для идентификации.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
  ...
...

Формат табличных выходных данныхTable output format

Формат table выводит данные в виде таблицы ASCII, упрощая чтение и сканирование данных.The table format prints output as an ASCII table, making it easy to read and scan. Вложенные объекты не включаются в таблицу с выходными данными, но их можно отфильтровать как часть запроса.Nested objects aren't included in table output, but can still be filtered as part of a query. Некоторые поля не включаются в таблицу, поэтому этот формат лучше всего подходит, когда вам нужно быстро получить обзор данных в наглядной форме.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

Вы можете использовать параметр --query для настройки свойств и столбцов, которые будут отображаться в списке.You can use the --query parameter to customize the properties and columns you want to show in the list output. Следующий пример показывает, как выбрать только имя виртуальной машины и имя группы ресурсов в команде 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

Примечание

Некоторые ключи по умолчанию не отображаются в табличном представлении.Some keys are not printed in the table view by default. Доступны следующие параметры: id, type и etag.These are id, type, and etag. Если вам нужно отобразить их в выходных данных, вы можете использовать функцию повторного добавления ключа JMESPath, чтобы изменить имя ключа и избежать фильтрации.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

Дополнительные сведения об использовании запросов для фильтрации данных см. в руководстве по использованию запросов JMESPath в Azure CLI.For more about using queries to filter data, see Use JMESPath queries with Azure CLI.

Формат выходных данных TSVTSV output format

Формат выходных данных tsv возвращает значения, разделенные табуляцией и символом новой строки без дополнительного форматирования, ключей и других символов.The tsv output format returns tab- and newline-separated values without additional formatting, keys, or other symbols. Такой формат позволяет использовать выходные данные в других командах и инструментах, необходимых для обработки текста в определенной форме.This format makes it easy to consume the output into other commands and tools that need to process the text in some form. Как и формат table, tsv не отображает вложенные объекты.Like the table format, tsv doesn't print nested objects.

Если применить для предыдущего примера параметр tsv, отобразится результат в виде текста, разделенного табуляцией.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

Одним из ограничений формата вывода TSV является то, что порядок вывода не гарантируется.One restriction of the TSV output format is that there isn't a guarantee on output ordering. В интерфейсе командной строки порядок сохраняется за счет расположения ключей в алфавитном порядке в ответе JSON и последующем выводе их значений в том порядке, который соответствует выходным данным 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. Это не гарантирует постоянного соблюдения порядка, так как формат ответа службы Azure может измениться.This isn't a guarantee that the order is always identical though, since the Azure service response format may change.

Чтобы обеспечить требуемый порядок, необходимо использовать параметр --query и формат списка из нескольких элементов.In order to enforce consistent ordering, you'll need to use the --query parameter and the multiselect list format. Если команда CLI возвращает один словарь JSON, используйте общий формат [key1, key2, ..., keyN] для обеспечения порядка ключей.When a CLI command returns a single JSON dictionary, use the general format [key1, key2, ..., keyN] to force a key order. Если команда CLI возвращает массив, используйте общий формат [].[key1, key2, ..., keyN], чтобы упорядочить значения столбцов.For CLI commands which return an array, use the general format [].[key1, key2, ..., keyN] to order column values.

Так, чтобы упорядочить приведенные выше сведения по идентификатору, расположению, группе ресурсов и имени виртуальной машины, сделайте следующее: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

На следующем примере показано, как выходные данные команды tsv можно передать по каналу в другие команды оболочки bash.The next example shows how tsv output can be piped to other commands in bash. Фильтрация выходных данных и принудительное упорядочивание выполняются с помощью запроса. Команда grep выбирает элементы, содержащие текст RGD, а затем команда cut выбирает четвертое поле, чтобы отобразить имя виртуальной машины в выходных данных.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

Настройка формата вывода по умолчаниюSet the default output format

Вы можете использовать интерактивную команду az configure, чтобы настроить окружение и выбрать параметры по умолчанию для форматов выходных данных.Use the interactive az configure command to set up your environment and establish default settings for output formats. Формат выходных данных по умолчанию — 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]:

Дополнительные сведения о настройке среды см. в руководстве по конфигурации Azure CLI.To learn more about configuring your environment, see Azure CLI configuration.