Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure CLI a JSON-t használja alapértelmezett kimeneti formátumként, de más formátumokat is kínál. Az Azure CLI-kimenet formázásához használja a --output (--out vagy -o) paramétert. Az argumentumértékek és a kimenettípusok a következők:
| --kimenet | Leírás |
|---|---|
json |
JSON-string. Ez a beállítás az alapértelmezett |
jsonc |
Színezett JSON |
table |
ASCII-tábla oszlopfejlécként kulcsokkal |
tsv |
Tabulátorral elválasztott értékek, kulcsok nélkül |
yaml |
YAML, a JSON ember által olvasható alternatívája |
yamlc |
Színezett YAML |
none |
A hibákon és figyelmeztetéseken kívül más kimenet nem jelenik meg |
Figyelmeztetés
Az olyan titkos kódok felfedésének elkerülése érdekében, mint az API-kulcsok és a hitelesítő adatok, használjon kimeneti formátumot vagy tárolja a parancs kimenetét none egy változóban.
Jegyzet: Egyes CI/CD-környezetek naplókban tárolhatják a végrehajtott parancsok kimenetét. Célszerű ellenőrizni a naplófájlok tartalmát, és hogy kik férhetnek hozzá a naplókhoz. További információ: Nincs kimeneti formátum.
JSON kimeneti formátum (alapértelmezett)
Az alábbi példa az előfizetésekben lévő virtuális gépek listáját jeleníti meg alapértelmezett JSON formátumban.
az vm list --output json
Az alábbi kimenetben néhány mező a tömörség érdekében hiányzik, és azonosító adatok helyettesítve lettek.
[
{
"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"
}
]
},
...
...
...
]
YAML kimeneti formátum
A yaml formátum YAML formátumban nyomtatja ki a kimenetet, amely egyszerű szöveges adat szerializálási formátum. A YAML általában könnyebben olvasható, mint a JSON, és erre a formátumra van leképezve. Egyes alkalmazások és az Azure CLI-parancsok a YAML-t veszik konfigurációs bemenetként JSON helyett.
az vm list --output yaml
Az alábbi kimenetben néhány mező a tömörség érdekében hiányzik, és azonosító adatok helyettesítve lettek.
- 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
...
...
Táblázat kimeneti formátum
A table formátum ASCII-táblázatként nyomtatja ki a kimenetet, így könnyen olvasható és beolvasható. A beágyazott objektumok nem szerepelnek a tábla kimenetében, de továbbra is szűrhetők egy lekérdezés részeként. Egyes mezők nem szerepelnek a táblában, ezért ez a formátum akkor a legjobb, ha gyors, ember által kereshető áttekintést szeretne az adatokról.
az vm list --output table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
A --query paraméter használatával testre szabhatja a lista kimenetében megjeleníteni kívánt tulajdonságokat és oszlopokat. Az alábbi példa bemutatja, hogyan választhatja ki csak a virtuális gép nevét és az erőforráscsoport nevét a list parancsban.
az vm list --query "[].{resource:resourceGroup, name:name}" --output table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Megjegyzés:
Egyes kulcsok alapértelmezés szerint nem jelennek meg a táblázat nézetben. Ezek a kulcsok a következők: id, typeés etag. Ha szüksége van rájuk a kimenetben, a JMESPath újrakulcsolási funkciójával módosíthatja a kulcs nevét, és elkerülheti a szűrést.
az vm list --query "[].{objectID:id}" --output table
További információ a lekérdezések adatok szűréséről: JMESPath-lekérdezések használata az Azure CLI-vel.
TSV kimeneti formátum
A tsv kimeneti formátum a tabulátort és az új vonallal elválasztott értékeket adja vissza további formázás, kulcsok és egyéb szimbólumok nélkül. Ezzel a formátummal egyszerűen felhasználhatja a kimenetet más parancsokba és eszközökbe, amelyeknek valamilyen formában kell feldolgozni a szöveget. A formátumhoz tabletsv hasonlóan nem nyomtat beágyazott objektumokat.
Az előző példa tsv opció használatával tabulátorral elválasztott eredményt ad.
az vm list --output 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
A tsv kimeneti formátum egyik korlátozása, hogy a kimenet sorrendjére nincs garancia. Az Azure CLI mindent megtesz annak érdekében, hogy megőrizze a sorrendet a válasz JSON-kulcsainak betűrendbe rendezésével, majd az értékek nyomtatásával a kimenet érdekében tsv . Nincs garancia arra, hogy a megrendelés mindig azonos, mivel az Azure szolgáltatás válaszformátuma változhat.
A konzisztens rendezés kényszerítéséhez a --query paramétert és a többválasztásos listaformátumot kell használnia. Amikor egy Azure CLI-parancs egyetlen JSON-szótárt ad vissza, az általános formátum használatával [key1, key2, ..., keyN] kényszerítse ki a kulcssorrendet. Tömböt visszaíró Azure CLI-parancsok esetén az általános formátum [].[key1, key2, ..., keyN] használatával rendezze az oszlopértékeket.
Például az azonosító, a hely, az erőforráscsoport és a virtuális gép neve szerint megjelenített információk sorrendje:
az vm list --output 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
A következő példa bemutatja, hogyan csövezheti tsv a kimenetet más parancsokba a Bashben. A lekérdezés a kimenet szűrésére és a rendezés kényszerítésére szolgál, grep kijelöli azokat az elemeket, amelyekben szöveg RGD található, majd a cut parancs a negyedik mezőt választja ki a kimenetben lévő virtuális gép nevének megjelenítéséhez.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
A tsv kimeneti formátumot gyakran használják értékek változókhoz való hozzárendeléséhez. Ez a példa lekéri az aktív előfizetés azonosítóját, és egy szkriptben használható változóban tárolja.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
További --query paraméteres példákért tekintse meg az Azure CLI parancskimenetének lekérdezését ismertető témakört.
Nincs kimeneti formátum
Egyes Azure CLI-parancsok kimeneti adatait védenie kell. Íme négy példa:
- Jelszavak
- Kapcsolati karakterláncok
- Titkos kódok
- Kulcsok
Az Azure CLI-parancsok használatakor a titkos kódok és kulcsok védelméhez válasszon az alábbi lehetőségek közül:
| Lehetőség | Előny | Felhasználási eset |
|---|---|---|
--output none kimeneti formátum |
A bizalmas információk nem jelennek meg a konzolon. Ha a parancs sikertelen, továbbra is hibaüzenetek érkeznek. | 1. Akkor használható, ha a parancs kimenete később lekérhető . |
| 2. Akkor használja, ha nincs szüksége kimenetre. | ||
| 3. Gyakori választás, ha felügyelt identitást vagy szolgáltatásnevet használnak az Azure-erőforrások kezeléséhez. | ||
--query paraméter |
A kimenetet változóban tárolja. | 1. Akkor használja, ha a parancs kimenete később nem kérhető le. |
| 2. Akkor használja, ha parancskimeneti értéket kell használnia egy szkriptben. |
Biztonsági adatok lekérése későbbi időpontban
Néhány Az Azure titkos kulcsai később lekérhetők. Ilyen például az Azure Key Vaultban tárolt titkos kódok. Ebben a példában hozzon létre egy Azure Key Vault-titkot az keyvault secret set paranccsal a --output none opció használatával. A titkos kulcsot később az az keyvault secret show paranccsal is lekérheti.
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
Biztonsági információk tárolása változókban
A kimenet változókban való tárolásának használata --query technikailag nem kimeneti formátum. Ez egy megoldás a titkos kódok védelmére, és alternatívája a használatnak --output none. Például, ha visszaállít egy szolgáltatási főazonosító hitelesítési adatokat, a jelszót nem lehet újra lekérni.
A szolgáltatási fiók hitelesítő adatának alaphelyzetbe állítása, amely a kimenetet az alapértelmezett JSON formátumban adja vissza.
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
A konzol kimenete az új jelszót jeleníti meg a konzolon.
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
Jobb megoldás, ha bizalmas adatokat ad vissza egy változónak.
# Bash Script
# reset service principal credentials returning results to a variable
myNewPassword=$(az ad sp credential reset --id myServicePrincipalID --query password --output tsv)
# Display the new password (remove this line in production for security)
echo "New password: $myNewPassword"
További példák a kimenet változókra való tárolására: Az Azure CLI sikeres használata – értékek átadása egy másik parancsnak. A paraméterszintaxisról --query további információt az Azure CLI parancskimenetének lekérdezése című témakörben talál.
Az alapértelmezett kimeneti formátum beállítása
Az Azure CLI-parancsok kétféleképpen vezérelhető kimenetet biztosítanak:
| Kimeneti vezérlés | Előny | Használati útmutató |
|---|---|---|
| Globális beállítás | Válasszon ki egy alapértelmezett kimeneti értéket, amelyet a leggyakrabban használ, hogy ne kelljen folyamatosan paramétert --output megadnia az egyes referenciaparancsokhoz. |
Adja meg az alapértelmezett kimeneti formátumot az az config set használatával. |
| Parancsparaméter | Adja meg a kimenetet a parancs szintjén, és maximális rugalmasságot biztosítson a szkripteknek. Az egyes referenciaparancsok konzolkimenetét és változó bemenetét szabályozhatja. | Felülbírálja az alapértelmezett beállítást egy referenciaparancs paraméterével --output . |
Az Azure CLI alapértelmezett kimenete a json. Állítsa be az alapértelmezett kimenetet arra az állapotra, none amikor nincs szükség konzolkimenetre.
az config set core.output=none
A paraméterrel felülírhatja bármely Azure CLI-referenciaparancs alapértelmezett kimenetét --output . Íme egy parancsprogram, amely módosítja és teszteli a parancs kimenetét:
# set your default output to table
az config set core.output=table
# show your active subscription in table format
# notice how only a subset of properties are returned in the table
az account show
# override your table default and show your active subscription in jsonc format
az account show --output jsonc
# reset your default output to json
az config set core.output=json