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.