Formáty výstupu pro příkazy Azure CLI
Azure CLI jako výchozí výstupní formát používá JSON, ale nabízí i jiné formáty. K formátování výstupu CLI použijte parametr --output (--out nebo -o). Hodnoty argumentu a typy výstupu:
| --output | Description |
|---|---|
json |
Řetězec ve formátu JSON. Toto nastavení je výchozí. |
jsonc |
Barevný formát JSON |
yaml |
YAML, alternativně čitelný k JSON |
yamlc |
Barevně YAML |
table |
Tabulka ASCII s klíči jako záhlaví sloupců |
tsv |
Hodnoty oddělené tabulátorem, bez klíčů. |
none |
Žádný výstup kromě chyb a upozornění |
Výstupní formát JSON
Následující příklad zobrazí seznam virtuálních počítačů ve vašich předplatných ve výchozím formátu JSON.
az vm list --output json
V následujícím výstupu byla pro zkrácení vynechána některá pole a nahrazeny identifikující informace.
[
{
"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"
}
]
},
...
...
...
]
Výstupní formát YAML
yaml vytiskne výstup jako YAML (formát serializace dat v prostém textu). YAML se obvykle čte snáze než JSON a na tento formát se snadno mapuje. Některé aplikace a příkazy rozhraní příkazového řádku přijímají YAML jako vstup konfigurace (místo formátu JSON).
az vm list --out yaml
V následujícím výstupu byla pro zkrácení vynechána některá pole a nahrazeny identifikující informace.
- 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
...
...
Výstupní formát tabulky
Ve formátu table se výstup vytiskne jako tabulka ASCII, což usnadňuje čtení a prohledávání. Vnořené objekty nejsou do výstupu tabulky zahrnuté, ale je možné je vyfiltrovat jako součást dotazu. Některá pole se také do tabulky dat nezahrnují. Tento formát je proto vhodný, pokud chcete rychlý přehled dat, ve kterém se dá snadno orientovat.
az vm list --out table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
Pomocí parametru --query můžete upravit vlastnosti a sloupce, které chcete zobrazit ve výstupu příkazu. Následující příklad ukazuje, jak v příkazu list vybrat pouze název virtuálního počítače a název skupiny prostředků.
az vm list --query "[].{resource:resourceGroup, name:name}" -o table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Poznámka
Některé klíče se v zobrazení tabulky ve výchozím nastavení nevytisknou. Jsou to id, type a etag. Pokud je potřebujete zahrnout do výstupu, můžete využít překlíčovací funkci JMESPath ke změně názvu klíče a vyhnout se tak filtrování.
az vm list --query "[].{objectID:id}" -o table
Další informace o použití dotazů k filtrování dat najdete v tématu Použití dotazů JMESPath v Azure CLI.
Výstupní formát TSV
Výstupní formát tsv vrací hodnoty oddělené tabulátorem a znakem nového řádku, a to bez dalšího formátování, klíčů nebo jiných symbolů. Tento formát umožňuje jednoduše využít výstup v dalších příkazech a nástrojích, které potřebují zpracovat text v určitém formátu. Podobně jako ve formátu table se ani ve formátu tsv netisknou vnořené objekty.
Pokud použijeme předchozí příklad s možností tsv, výstupem bude výsledek oddělený tabulátory.
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
Jedním z omezení výstupního formátu TSV je, že neexistuje záruka na řazení výstupu. Rozhraní příkazového řádku usnadňuje zachování řazení pomocí řazení klíčů v kódu JSON odpovědi abecedně a následným vytištěním jejich hodnot v případě výstupu TSV. Není zaručeno, že objednávka je vždy shodná s tím, že se může změnit formát odpovědi služby Azure.
Aby bylo možné vyhovět konzistentnímu řazení, budete muset použít --query parametr a formát seznamu s více výběry . Když příkaz CLI vrátí jeden slovník JSON, [key1, key2, ..., keyN] vynutíte si pořadí klíčů pomocí obecného formátu. Pro příkazy rozhraní příkazového řádku, které vracejí pole, použijte formát Obecné [].[key1, key2, ..., keyN] pro řazení hodnot sloupců.
Pokud například chcete seřadit informace zobrazené výše podle ID, umístění, skupiny prostředků a názvu virtuálního počítače:
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
Další příklad ukazuje, jak se výstup tsv dá předat dalším příkazům v Bashi. Dotaz slouží k filtrování výstupu a vyřazení, grep vybírá položky, které mají v nich text "RGD", a cut příkaz vybere čtvrté pole, ve kterém se zobrazí název virtuálního počítače ve výstupu.
az vm list --out tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
Nastavení výchozího formátu výstupu
Pomocí az config set příkazu nastavte prostředí a určete výchozí nastavení pro formáty výstupu. Výchozí formát výstupu je 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]:
Další informace o konfiguraci vašeho prostředí najdete v tématu Konfigurace Azure CLI.