Utdataformat för Azure CLI-kommandon

Azure CLI använder JSON som standardutdataformat, men kan även använda andra format. Använd parametern --output (--out eller -o) för att formatera CLI-utdata. Argumentvärden och utdatatyper är:

--resultat Description
json JSON-sträng. Den här inställningen är standardinställningen
jsonc Färglagd JSON
yaml YAML, ett läsbart alternativ till JSON
yamlc Färglagd YAML
table ASCII-tabell med nycklar som kolumnrubriker
tsv Tabbavgränsade värden, utan nycklar
none Inga andra utdata än fel och varningar

Format för JSON-utdata

I följande exempel visas listan över virtuella datorer i dina prenumerationer i JSON-standardformatet.

az vm list --output json

I följande utdata har vissa fält utelämnats av utrymmesskäl och identifieringsinformation har ersatts.

[
  {
    "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"
        }
      ]
    },
          ...
          ...
          ...
]

Format för YAML-utdata

yaml-formatet skriver ut utdata som YAML, ett oformaterat dataserialiseringsformat. YAML kan vara lättare att läsa än JSON, och mappas enkelt till det formatet. Vissa program och CLI-kommandon tar YAML som konfigurationsindata, i stället för JSON.

az vm list --out yaml

I följande utdata har vissa fält utelämnats av utrymmesskäl och identifieringsinformation har ersatts.

- 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
  ...
...

Format för tabellutdata

Formatet table skriver ut utdata som en ASCII-tabell, vilket gör dem enkla att läsa och söka igenom. Kapslade objekt ingår inte i tabellutdata, men kan fortfarande filtreras som en del av en fråga. Vissa fält finns inte i tabellen, så det här formatet passar bäst om du vill ha en snabb sökbar översikt över data.

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

Du kan använda parametern --query för att anpassa egenskaperna och kolumnerna du vill visa i bland listans utdata. I följande exempel visas hur du ska välja bara VM-namnets och resursgruppens namn i kommandot list.

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

Anteckning

Vissa nycklar skrivs som standard inte ut i tabellvyn. Dessa är id, type och etag. Om du behöver se dessa i dina utdata kan du använda JMESPath-nyckelfunktionen för att ändra nyckelnamnet och undvika filtrering.

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

Mer information om hur du använder frågor för att filtrera data finns i Använda JMESPath-frågor med Azure CLI.

Format för TSV-utdata

tsv-utdataformatet returnerar tabbavgränsade värden och radmatningsavgränsade värden utan ytterligare formatering, nycklar eller andra symboler. I det här formatet är det enkelt att använda utdata i andra kommandon och verktyg som behöver bearbeta texten i någon form. Liksom formatet table skriver tsv inte ut kapslade objekt.

Om du använder följande exempel med alternativet tsv matas det tabbavgränsade resultatet ut.

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

En begränsning i TSV-utdataformatet är att det inte finns någon garanti för utdataordning. CLI gör ett bästa försök att bevara sorteringen genom att sortera nycklar i svars-JSON alfabetiskt och sedan skriva ut deras värden i ordning för TSV-utdata. Detta är dock inte en garanti för att ordningen alltid är identisk, eftersom Azure-tjänstens svarsformat kan ändras.

För att framtvinga konsekvent ordning måste du använda --query parametern och multiselect-listformatet. När ett CLI-kommando returnerar en enda JSON-ordlista använder du det allmänna formatet för [key1, key2, ..., keyN] att tvinga fram en nyckelordning. För CLI-kommandon som returnerar en matris använder du det allmänna formatet [].[key1, key2, ..., keyN] för att ordna kolumnvärden.

Om du till exempel vill ordna informationen som visas ovan efter ID, plats, resursgrupp och VM-namn:

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

I nästa exempel visas hur tsv-utdata kan skickas till andra kommandon i Bash. Frågan används för att filtrera utdata och tvinga ordning, markera objekt som har texten "RGD" i sig och sedan väljer kommandot det fjärde fältet för att visa namnet på den virtuella datorn i grep cut utdata.

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

Ange standardutdataformatet

Använd kommandot az config set för att konfigurera din miljö och upprätta standardinställningar för utdataformat. Standardutdataformatet är 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]:

Läs mer om hur du konfigurerar din miljö i Azure CLI-konfiguration.