Uitvoerindelingen voor Azure CLI-opdrachten
De Azure CLI gebruikt JSON als standaarduitvoerindeling, maar biedt ook andere indelingen. Gebruik de parameter --output (--out of -o) om de CLI-uitvoer op te maken. De argumentwaarden en -typen van de uitvoer zijn:
| --output | Description |
|---|---|
json |
JSON-tekenreeks. Deze instelling is de standaardinstelling |
jsonc |
Gekleurde JSON |
yaml |
YAML, een door mensen leesbaar alternatief voor JSON |
yamlc |
Gekleurde YAML |
table |
ASCII-tabel met sleutels als kolomkoppen |
tsv |
Door tabs gescheiden waarden, geen sleutels. |
none |
Geen andere uitvoer dan fouten en waarschuwingen |
JSON-uitvoer
In het volgende voorbeeld wordt de lijst met virtuele machines in uw abonnementen weergegeven in de standaard-JSON-indeling.
az vm list --output json
Kortheidshalve zijn in de volgende uitvoer bepaalde velden weggelaten. Ook zijn identificatiegegevens vervangen.
[
{
"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"
}
]
},
...
...
...
]
De uitvoerindeling YAML
In de indeling yaml wordt de uitvoer gegenereerd als YAML, een serialisatie-indeling voor gegevens die bestaan uit tekst zonder opmaak. YAML is doorgaans gemakkelijker te lezen dan JSON en kan eenvoudig worden omgezet in die indeling. Sommige toepassingen en CLI-opdrachten gebruiken YAML als configuratie-invoer, in plaats van JSON.
az vm list --out yaml
Kortheidshalve zijn in de volgende uitvoer bepaalde velden weggelaten. Ook zijn identificatiegegevens vervangen.
- 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
...
...
Tabeluitvoer
De table-indeling genereert uitvoer als een ASCII-tabel, waardoor deze eenvoudig te lezen en te scannen is. Tabeluitvoer bevat geen geneste objecten, maar hierop kan wel worden gefilterd met behulp van een query. In de tabel zijn niet alle velden opgenomen. Deze indeling is dan ook vooral geschikt als u een snel, handmatig goed doorzoekbaar overzicht van uw gegevens nodig hebt.
az vm list --out table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
U kunt de parameter --query gebruiken om de eigenschappen en kolommen die u in de lijstuitvoer wilt weergeven, aan te passen. Het volgende voorbeeld laat zien hoe u slechts de VM-naam en de naam van de resourcegroep selecteert in de opdracht list.
az vm list --query "[].{resource:resourceGroup, name:name}" -o table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Notitie
Sommige sleutels worden niet standaard opgenomen in de tabelweergave. Dit zijn de sleutels id, type en etag. Als u deze sleutels wel in de uitvoer wilt opnemen, kunt u de JMESPath-functie voor het opnieuw instellen van sleutels gebruiken om de sleutelnaam te wijzigen en zo te voorkomen dat u moet filteren.
az vm list --query "[].{objectID:id}" -o table
Raadpleeg JMESPath-query's gebruiken met de Azure CLI voor meer informatie over het gebruik van query's om gegevens te filteren.
TSV-uitvoer
De uitvoerindeling tsv retourneert door tabs en nieuwe regels gescheiden waarden zonder extra opmaak, sleutels of andere symbolen. Deze indeling maakt het eenvoudig om de uitvoer op te nemen in andere opdrachten en hulpmiddelen die de tekst in enige vorm moeten verwerken. Net als de table-indeling genereert tsv geen geneste objecten.
Als u het voorgaande voorbeeld gebruikt met de optie tsv, worden de resultaten uitgevoerd gescheiden door tabs.
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
Een beperking van de TSV-uitvoerindeling is dat er geen garantie is voor het bestellen van uitvoer. De CLI doet er alles aan om de volgorde te behouden door sleutels in de antwoord-JSON alfabetisch te sorteren en vervolgens de waarden af te drukken op TSV-uitvoer. Dit is echter geen garantie dat de order altijd identiek is, omdat de reactie-indeling van de Azure-service kan veranderen.
Als u consistente volgorde wilt afdwingen, moet u de parameter en de --query lijstindeling voor meervoudige selectie gebruiken. Wanneer een CLI-opdracht één JSON-woordenlijst retourneert, gebruikt u de algemene indeling om [key1, key2, ..., keyN] een sleutelorder af te dwingen. Gebruik voor CLI-opdrachten die een matrix retourneren de algemene indeling om [].[key1, key2, ..., keyN] kolomwaarden te ordeden.
Als u bijvoorbeeld de bovenstaande informatie wilt orden op id, locatie, resourcegroep en VM-naam:
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
Het volgende voorbeeld laat zien hoe tsv-uitvoer kan worden doorgesluisd naar andere opdrachten in bash. De query wordt gebruikt om uitvoer te filteren en volgorde af te dwingen, selecteert items met de tekst 'RGD' en vervolgens selecteert de opdracht het vierde veld om de naam van de VM in de uitvoer weer grep cut te geven.
az vm list --out tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
De standaarduitvoerindeling instellen
Gebruik de az config set opdracht om uw omgeving in te stellen en standaardinstellingen voor uitvoerindelingen tot stand te brengen. De standaarduitvoerindeling is 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]:
Raadpleeg Configuratie van Azure CLI voor meer informatie over het configureren van uw omgeving.