Azure CLI använder frågor för att välja och ändra utdata från Azure CLI-kommandon. Frågor körs på klientsidan på Azure CLI-kommandots returnerade JSON-objekt innan någon visningsformatering.
De escape-tecken som behövs i frågor skiljer sig åt för olika miljöer. Vi rekommenderar att du kör frågor i Azure Cloud Shell eller cmd eftersom dessa gränssnitt kräver färre escape-tecken. För att säkerställa att frågeexemplen är syntaktiskt korrekta väljer du fliken för det gränssnitt som du använder.
Ordlista och lista CLI-resultat
CLI-kommandoresultat behandlas först som JSON för frågor, även om utdataformatet är något annat än JSON. CLI-resultat är antingen en JSON-matris eller ordlista. Matriser är sekvenser av objekt som kan indexeras och ordlistor är oordnade objekt som nås med nycklar.
Det här är ett exempel på en matris:
[
1,
2,
3
]
Det här är ett exempel på en ordlista:
{
"isRunning": false,
"time": "12:00",
"number": 1
}
Kommandon som kan returnera fler än ett objekt returnerar en matris och kommandon som alltid returnerar endast ett enskilt objekt returnerar en ordlista.
Hämta egenskaper i en ordlista
När du arbetar med ordlisteresultat kan du komma åt egenskaper från den översta nivån med bara nyckeln. Tecknet .
(underuttryck) används för att komma åt egenskaper för kapslade ordlistor. Innan du introducerar frågor bör du ta en titt på de oförändrade utdata från kommandot az vm show :
az vm show --resource-group QueryDemo --name TestVM
Se till att du använder den senaste versionen för att undvika eventuella citatproblem med äldre versioner av PowerShell. Information om hur du installerar den senaste versionen av PowerShell finns i Installera PowerShell i Windows, Linux och macOS.
az vm show --resource-group QueryDemo --name TestVM
az vm show --resource-group QueryDemo --name TestVM
Kommandot matar ut en ordlista. En del innehåll har utelämnats.
{
"additionalCapabilities": null,
"availabilitySet": null,
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "https://xxxxxx.blob.core.windows.net/"
}
},
...
"osProfile": {
"adminPassword": null,
"adminUsername": "azureuser",
"allowExtensionOperations": true,
"computerName": "TestVM",
"customData": null,
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"provisionVmAgent": true,
"ssh": {
"publicKeys": [
{
"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso",
"path": "/home/azureuser/.ssh/authorized_keys"
}
]
}
},
"secrets": [],
"windowsConfiguration": null
},
....
}
Följande kommando hämtar de offentliga SSH-nycklarna som har behörighet att ansluta till den virtuella datorn genom att lägga till en fråga:
az vm show --resource-group QueryDemo --name TestVM --query "osProfile.linuxConfiguration.ssh.publicKeys"
az vm show --resource-group QueryDemo --name TestVM --query "osProfile.linuxConfiguration.ssh.publicKeys"
az vm show --resource-group QueryDemo --name TestVM --query "osProfile.linuxConfiguration.ssh.publicKeys"
[
{
"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso",
"path": "/home/azureuser/.ssh/authorized_keys"
}
]
Frågesträngar är skiftlägeskänsliga. Om du till exempel ändrar "osProfile" till "OsProfile" i föregående fråga returneras inte rätt resultat.
Om du vill hämta mer än en egenskap placerar du uttryck avgränsade med kommatecken inom hakparenteser (en flervalslista).[ ]
Följande kommando hämtar vm-namnet, administratörsanvändaren och SSH-nyckeln på en gång:
az vm show --resource-group QueryDemo --name TestVM --query "[name, osProfile.adminUsername, osProfile.linuxConfiguration.ssh.publicKeys[0].keyData]"
az vm show --resource-group QueryDemo --name TestVM --query "[name, osProfile.adminUsername, osProfile.linuxConfiguration.ssh.publicKeys[0].keyData]"
az vm show --resource-group QueryDemo --name TestVM --query "[name, osProfile.adminUsername, osProfile.linuxConfiguration.ssh.publicKeys[0].keyData]"
[
"TestVM",
"azureuser",
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso"
]
Dessa värden visas i resultatmatrisen i den ordning de angavs i frågan. Eftersom resultatet är en matris finns det inga nycklar som är associerade med resultatet. Information om hur du hämtar en ordlista i stället för en matris finns i nästa avsnitt.
Byt namn på egenskaper i en fråga
Om du vill hämta en ordlista i stället för en matris när du frågar efter flera värden använder du operatorn { }
(multiselect hash).
Formatet för en hash för flera val är {displayName:JMESPathExpression, ...}
.
displayName
är strängen som visas i utdata och JMESPathExpression
är det JMESPath-uttryck som ska utvärderas. Ändra exemplet från det sista avsnittet genom att ändra flervalslistan till en hash:
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKey:osProfile.linuxConfiguration.ssh.publicKeys[0].keyData}"
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKey:osProfile.linuxConfiguration.ssh.publicKeys[0].keyData }"
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKey:osProfile.linuxConfiguration.ssh.publicKeys[0].keyData }"
{
"VMName": "TestVM",
"admin": "azureuser",
"ssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso"
}
Hämta egenskaper i en matris
En matris har inga egna egenskaper, men den kan indexeras. Den här funktionen visas i det sista exemplet med uttrycket publicKeys[0]
, som hämtar det första elementet i matrisen publicKeys
. Det finns ingen garanti för att CLI-utdata är ordnade, så undvik att använda indexering om du inte är säker på ordningen eller inte bryr dig om vilket element du får. Om du vill komma åt egenskaperna för element i en matris utför du en av två åtgärder: platta ut eller filtrera. Det här avsnittet beskriver hur du platta ut en matris.
En matris plattas ut med []
JMESPath-operatorn. Alla uttryck efter operatorn []
tillämpas på varje element i den aktuella matrisen.
Om []
det visas i början av frågan plattas CLI-kommandoresultatet ut. Resultatet av az vm list
kan inspekteras med den här funktionen.
Följande fråga hämtar namnet, operativsystemet och administratörsnamnet för varje virtuell dator i en resursgrupp:
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
[
{
"Name": "Test-2",
"OS": "Linux",
"admin": "sttramer"
},
{
"Name": "TestVM",
"OS": "Linux",
"admin": "azureuser"
},
{
"Name": "WinTest",
"OS": "Windows",
"admin": "winadmin"
}
]
Alla matriser kan plattas ut, inte bara resultatet på den översta nivån som returneras av kommandot. I det sista avsnittet användes uttrycket osProfile.linuxConfiguration.ssh.publicKeys[0].keyData
för att hämta den offentliga SSH-nyckeln för inloggning. För att hämta varje offentlig SSH-nyckel kan uttrycket i stället skrivas som osProfile.linuxConfiguration.ssh.publicKeys[].keyData
.
Det här frågeuttrycket plattar ut matrisen osProfile.linuxConfiguration.ssh.publicKeys
och kör keyData
sedan uttrycket på varje element:
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKeys:osProfile.linuxConfiguration.ssh.publicKeys[].keyData }"
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKeys:osProfile.linuxConfiguration.ssh.publicKeys[].keyData }"
az vm show --resource-group QueryDemo --name TestVM --query "{VMName:name, admin:osProfile.adminUsername, sshKeys:osProfile.linuxConfiguration.ssh.publicKeys[].keyData }"
{
"VMName": "TestVM",
"admin": "azureuser",
"sshKeys": [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso\n"
]
}
Filtrera matriser med booleska uttryck
Den andra åtgärden som används för att hämta data från en matris är filtrering. Filtreringen görs med [?...]
JMESPath-operatorn.
Den här operatorn tar ett predikat som innehåll. Ett predikat är alla uttryck (inklusive booleska egenskaper) som kan utvärderas till antingen true
eller false
. Uttryck där predikatet utvärderas till true
inkluderas i utdata.
Den första frågan visar hur du listar namnen på alla Azure-prenumerationer som är anslutna till ditt konto vars isDefault
egenskap är sann. Den andra och tredje frågan visar två olika sätt att lista alla prenumerationer vars isDefault
egenskap är falsk.
az account list --query "[?isDefault].name"
az account list --query '[?!isDefault].name'
az account list --query "[?isDefault == \`false\`].name"
az account list --query "[?isDefault].name"
az account list --query "[?!isDefault].name"
az account list --query "[?isDefault == ``false``].name"
Observera de extra escape-tecknen (`
) som omger värdet false
i föregående kommando. Dessa extra escape-tecken finns eftersom Azure CLI-kommandon betraktas som kommandotolksskript, så både PowerShell och kommandotolkens parsning måste beaktas. Azure CLI får bara en symbol om den fortfarande finns efter två parsningsrundor. Mer information om andra möjliga citatproblem i PowerShell finns i Överväganden för att köra Azure CLI på ett PowerShell-skriptspråk.
REM Boolean values are assumed to be true, so you can directly evaluate the isDefault property to return the default subscription.
az account list --query "[?isDefault].name"
REM To check if a Boolean property is false, you can use the comparison operator == or the logical operator !.
az account list --query "[?!isDefault].name"
az account list --query "[?isDefault == `false`].name"
Exemplet ovan fungerar bara när du använder kommandotolken interaktivt. Om du vill köra flera az-kommandon i ett batchskript med kommandotolken prefixar du varje az-kommando med call
. Använd till exempel call az account list
i stället för az account list
.
JMESPath erbjuder standardjämförelse- och logiska operatorer. Dessa inkluderar <
, <=
, >
, >=
, ==
och !=
. JMESPath stöder också logiska och (&&
) eller (||
) och inte (!
). Uttryck kan grupperas inom parentes, vilket möjliggör mer komplexa predikatuttryck. Fullständig information om predikat och logiska åtgärder finns i JMESPath-specifikationen.
I det sista avsnittet har du plattat ut en matris för att få en fullständig lista över alla virtuella datorer i en resursgrupp. Med hjälp av filter kan dessa utdata begränsas till endast virtuella Linux-datorer:
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.osType=='Linux'].{Name:name, admin:osProfile.adminUsername}" --output table
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.osType=='Linux'].{Name:name, admin:osProfile.adminUsername}" --output table
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.osType=='Linux'].{Name:name, admin:osProfile.adminUsername}" --output table
Name Admin
------ ---------
Test-2 sttramer
TestVM azureuser
Du kan också filtrera numeriska värden, till exempel operativsystemets diskstorlek. I följande exempel visas hur du filtrerar listan över virtuella datorer så att de visas med en diskstorlek som är större än eller lika med 50 GB.
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.diskSizeGb >=\`50\`].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb }" --output table
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.diskSizeGb >=``50``].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb }" --output table
Observera de extra escape-tecknen (`
) som omger 50 i föregående kommando. Dessa extra escape-tecken finns eftersom Azure CLI-kommandon betraktas som kommandotolksskript, så både PowerShell och kommandotolkens parsning måste beaktas. Azure CLI får bara en symbol om den fortfarande finns efter två parsningsrundor. Mer information om andra möjliga citatproblem i PowerShell finnsi Överväganden för att köra Azure CLI på ett PowerShell-skriptspråk.
az vm list --resource-group QueryDemo --query "[?storageProfile.osDisk.diskSizeGb >=`50`].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb }" --output table
Name Admin DiskSize
------- -------- --------
WinTest winadmin 127
För stora matriser kan det gå snabbare att använda filtret innan du väljer data.
Viktigt
I JMESPath omges strängar alltid av enkla citattecken ('
) eller escape-tecken (`
). Om du använder dubbla citattecken som en del av en sträng i ett filterpredikat får du tomma utdata.
JMESPath har också inbyggda funktioner som möjliggör mer komplexa frågor och för att ändra frågeutdata. Det här avsnittet fokuserar på att använda JMESPath-funktioner för att skapa frågor medan avsnittet Manipulera utdata med funktioner visar hur du använder funktioner för att ändra utdata.
Uttryck utvärderas innan funktionen anropas, så själva argumenten kan vara JMESPath-uttryck. Följande exempel visar det här konceptet med hjälp contains(string, substring)
av , som kontrollerar om en sträng innehåller en delsträng. Det här kommandot hittar alla virtuella datorer som använder SSD-lagring för sin OS-disk:
az vm list --resource-group QueryDemo --query "[?contains(storageProfile.osDisk.managedDisk.storageAccountType,'SSD')].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType}"
az vm list --resource-group QueryDemo --query "[?contains(storageProfile.osDisk.managedDisk.storageAccountType,'SSD')].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType}"
az vm list --resource-group QueryDemo --query "[?contains(storageProfile.osDisk.managedDisk.storageAccountType,'SSD')].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType}"
[
{
"Name": "TestVM",
"Storage": "StandardSSD_LRS"
},
{
"Name": "WinTest",
"Storage": "StandardSSD_LRS"
}
]
Liknar hur |
används på kommandoraden, |
kan användas i JMESPath-frågor för att tillämpa uttryck på mellanliggande frågeresultat. Vi kan också använda |
för att dela upp komplexa frågor i enklare underuttryck. Om du vill förkorta frågan från föregående avsnitt använder du |
för att tillämpa filtret efter att du har plattat ut och valt data.
az vm list --resource-group QueryDemo --query "[].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType} | [? contains(Storage,'SSD')]"
az vm list --resource-group QueryDemo --query "[].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType} | [? contains(Storage,'SSD')]"
az vm list --resource-group QueryDemo --query "[].{Name:name, Storage:storageProfile.osDisk.managedDisk.storageAccountType} | [? contains(Storage,'SSD')]"
[
{
"Name": "TestVM",
"Storage": "StandardSSD_LRS"
},
{
"Name": "WinTest",
"Storage": "StandardSSD_LRS"
}
]
Se JMESPath-specifikationen – Inbyggda funktioner för den fullständiga listan över funktioner.
Manipulera utdata med funktioner
JMESPath-funktioner har också ett annat syfte, som är att arbeta med resultatet av en fråga. Alla funktioner som returnerar ett icke-booleskt värde ändrar resultatet av ett uttryck. Du kan till exempel sortera data efter ett egenskapsvärde med sort_by(array, &sort_expression)
. JMESPath använder en särskild operator, , &
för uttryck som ska utvärderas senare som en del av en funktion. I nästa exempel visas hur du sorterar en vm-lista efter os-diskstorlek:
az vm list --resource-group QueryDemo --query "sort_by([].{Name:name, Size:storageProfile.osDisk.diskSizeGb}, &Size)" --output table
az vm list --resource-group QueryDemo --query "sort_by([].{Name:name, Size:storageProfile.osDisk.diskSizeGb}, &Size)" --output table
az vm list --resource-group QueryDemo --query "sort_by([].{Name:name, Size:storageProfile.osDisk.diskSizeGb}, &Size)" --output table
Name Size
------- ------
Test-2 30
TestVM 32
WinTest 127
Se JMESPath-specifikationen – Inbyggda funktioner för den fullständiga listan över funktioner.
Azure CLI använder JSON som standardutdataformat, men olika utdataformat kan passa bättre för en fråga beroende på dess syfte och resultat. Frågor körs alltid på JSON
utdata först och formateras sedan.
Det här avsnittet går igenom tsv
och table
formaterar och vissa användningsfall för varje format. Mer information om utdataformat finns i Utdataformat för Azure CLI-kommandon.
Utdataformatet tsv
returnerar tab- och newline-avgränsade värden utan extra formatering, nycklar eller andra symboler. Det här formatet är användbart när utdata lagras i en parameter och används i ett annat kommando.
Ett användningsfall för tsv
formatering är frågor som hämtar ett värde från ett CLI-kommando, till exempel ett Azure-resurs-ID eller resursnamn, och lagrar värdet i en lokal miljövariabel. Som standard returneras resultaten i JSON-format, vilket kan vara ett problem vid hantering av JSON-strängar som omges av "
tecken. Citattecken kanske inte tolkas av gränssnittet om kommandoutdata tilldelas direkt till miljövariabeln. Det här problemet visas i följande exempel som tilldelar ett frågeresultat till en miljövariabel:
USER=$(az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername")
echo $USER
$USER=$(az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername")
echo $USER
FOR /f %i IN ('az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername"') DO SET USER=%i
echo %USER%
"azureuser"
Använd tsv
formatering, som visas i följande fråga, för att förhindra att returvärden omsluts med typinformation:
USER=$(az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername" --output tsv)
echo $USER
$USER=$(az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername" --output tsv)
echo $USER
FOR /f %i IN ('az vm show --resource-group QueryDemo --name TestVM --query "osProfile.adminUsername" --output tsv') DO SET USER=%i
echo %USER%
azureuser
Formatet table
skriver ut utdata som en ASCII-tabell, vilket gör dem enkla att läsa och söka igenom. Alla fält ingår inte i tabellen, så det här formatet används bäst som en översikt över data som kan sökas efter människor. Fält som inte ingår i tabellen kan fortfarande filtreras efter som en del av en fråga.
Anteckning
Vissa nycklar filtreras bort och skrivs inte ut i tabellvyn. De här nycklarna är id
, type
och etag
. Om du vill se dessa värden kan du ändra nyckelnamnet i en hash med flera val.
az vm show --resource-group QueryDemo --name TestVM --query "{objectID:id}" --output table
Vi kan använda en tidigare fråga för att demonstrera det här konceptet. Den ursprungliga frågan returnerade ett JSON-objekt som innehåller namnet, operativsystemet och administratörsnamnet för varje virtuell dator i resursgruppen:
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}"
[
{
"Name": "Test-2",
"OS": "Linux",
"admin": "sttramer"
},
{
"Name": "TestVM",
"OS": "Linux",
"admin": "azureuser"
},
{
"Name": "WinTest",
"OS": "Windows",
"admin": "winadmin"
}
]
I kombination med --output table
utdataformatet matchar kolumnnamnen displayKey
värdet för hashen multiselect, vilket gör det enklare att skumma informationen:
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, Admin:osProfile.adminUsername}" --output table
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, Admin:osProfile.adminUsername}" --output table
az vm list --resource-group QueryDemo --query "[].{Name:name, OS:storageProfile.osDisk.osType, Admin:osProfile.adminUsername}" --output table
Name OS Admin
------- ------- ---------
Test-2 Linux sttramer
TestVM Linux azureuser
WinTest Windows winadmin