Az Azure CLI kimeneti formátumai
Az Azure CLI JSON formátumot használ alapértelmezett kimeneti formátumként, de más formátumokat is biztosít. Az --out
(-o
vagy --output
) paraméterrel formázhatja a CLI kimenetét. A kimenet argumentumértékei és -típusai az alábbiak:
--output | Leírás |
---|---|
json |
JSON-sztring. Ez a beállítás az alapértelmezett |
jsonc |
Színezett JSON |
table |
ASCII-tábla oszlopfejlécként kulcsokkal |
tsv |
Tabulátorral tagolt é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
A parancs kimenetének kimeneti formátuma none
vagy tárolása változóban, hogy ne tárjon fel titkos kulcsokat, például API-kulcsokat és hitelesítő adatokat. Megjegyzés: Egyes CI/CD-környezetek a végrehajtott parancsok kimenetét naplókban tárolhatják. Érdemes ellenőrizni, hogy mi van megírva ezekben a naplófájlokban, és ki férhet 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
A következő kimenetből az áttekinthetőség kedvéért kihagytunk néhány mezőt, és lecseréltük az azonosító információkat.
[
{
"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-ként jeleníti meg a kimenetet. Ez egy egyszerű szöveges adatszerializáló formátum. A YAML alapvetően könnyebben olvasható a JSON-nál, és könnyen leképezhető abba a formátumba. Bizonyos alkalmazások és parancssori felületi parancsok elfogadják a YAML-t konfigurációs bemenetnek a JSON helyett.
az vm list --output yaml
A következő kimenetből az áttekinthetőség kedvéért kihagytunk néhány mezőt, és lecseréltük az azonosító információkat.
- 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ábla kimeneti formátum
A table
formátum ASCII-táblaként jeleníti meg a kimenetet, így az könnyen olvasható és vizsgálható. A táblakimenetben nem szerepelnek beágyazott objektumok, 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 akkor érdemes ezt a formátumot választani, ha az adatokról egy gyors, manuálisan is átböngészhető áttekintést szeretne készíteni.
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éterrel testre szabhatja a kimeneti listában megjeleníteni kívánt tulajdonságokat és oszlopokat. A következő példa azt mutatja be, hogyan választhatja ki csak a virtuális gép é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
Feljegyzés
A táblanézetben néhány kulcs alapértelmezés szerint nem jelenik meg. Ezek az id
, a type
, és az etag
. Ha ezeknek szerepelniük kell a kimenetben, a JMESPath újrakulcsolási funkcióval módosíthatja a kulcs nevét, így elkerülheti a szűrést.
az vm list --query "[].{objectID:id}" --output table
További információ az adatok lekérdezésekkel való szűréséről: JMESPath-lekérdezések használata az Azure CLI-vel.
TSV kimeneti formátum
A tsv
kimeneti formátum tabulátorral és új vonallal elválasztott értékeket ad vissza további formázás, kulcsok és egyéb szimbólumok nélkül. Az ilyen formátumú kimenet könnyen felhasználható más parancsokkal és eszközökkel, amelyeknek valamilyen módon fel kell dolgozniuk a szöveget. A table
formátumhoz hasonlóan a tsv
sem jeleníti meg a beágyazott objektumokat.
Az előző példa a tsv
kapcsolóval tabulátorral tagolt 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ának egyik korlátozása, hogy nincs garancia a kimeneti sorrendre. A parancssori felület 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 TSV-kimenet érdekében. 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 paramétert és a --query
többválasztásos listaformátumot kell használnia. Amikor egy 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. A tömböt visszaíró PARANCSSOR-parancsok esetében az általános formátum [].[key1, key2, ..., keyN]
használatával rendezze az oszlopértékeket.
Például a fent látható információk azonosító, hely, erőforráscsoport és virtuális gép neve szerint történő megrendeléséhez:
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 irányíthatja át a tsv
kimenetet a Bash más parancsaira. A lekérdezés a kimenet szűrésére és a rendezés kényszerítésére szolgál, kiválasztja azokat az elemeket, grep
amelyekben az "RGD" szöveg szerepel, majd a cut
parancs kiválasztja a negyedik mezőt a virtuális gép nevének megjelenítéséhez a kimenetben.
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:
- Jelszó
- kapcsolati sztringek
- Titkok
- keys
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 | Juttatás | Használati eset |
---|---|---|
--output none kimeneti formátum |
A bizalmas információk nem jelennek meg a konzolon. Ha a parancs sikertelen, akkor is hibaüzenetek fognak érkezni. | 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 későbbi használata none
és lekérése
Néhány Azure-titkos kód később lekérhető. Jó példa az Azure Key Vaultban tárolt titkos kódokra. Ebben a példában hozzon létre egy Azure Key Vault-titkos kulcsot az az keyvault titkos készlettel a --output none
beállítással. 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 használata --query
és visszaadása változónak
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íva a használata --output none
. Ha például visszaállít egy egyszerű szolgáltatás hitelesítő adatait, a jelszó nem kérhető le újra.
A szolgáltatásnév hitelesítő adatainak alaphelyzetbe állítása, amely az alapértelmezett JSON-formátumban adja vissza a kimenetet:
# 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ő | Juttatás | 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