Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 --output Azure CLI použijte parametr (--out nebo -o). Hodnoty argumentu a typy výstupu:
| --výstup | Popis |
|---|---|
json |
Řetězec ve formátu JSON. Toto nastavení je výchozí. |
jsonc |
Barevný formát JSON |
table |
Tabulka ASCII s klíči jako záhlaví sloupců |
tsv |
Hodnoty oddělené tabulátorem, bez klíčů. |
yaml |
YAML, čitelná alternativa k JSON pro člověka |
yamlc |
Barevné YAML |
none |
Žádný výstup kromě chyb a upozornění |
Výstraha
Abyste se vyhnuli odhalení tajných kódů, jako jsou klíče rozhraní API a přihlašovací údaje, použijte výstupní formát none nebo uložte výstup příkazu v proměnné.
Poznámka: Některá prostředí CI/CD můžou ukládat výstup spuštěných příkazů v protokolech. Doporučujeme ověřit obsah těchto souborů protokolu a přístup k protokolům. Další informace naleznete v tématu Žádný výstupní formát.
Výstupní formát JSON (výchozí)
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 je obvykle čitelnější než JSON a mapuje se na tento formát. Některé aplikace a příkazy Azure CLI přebírají jako vstup konfigurace YAML místo JSON.
az vm list --output 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
...
...
Formát výstupu tabulky
Formát table vytiskne výstup jako tabulku ASCII, což usnadňuje čtení a skenová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 --output 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 seznamu. 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}" --output table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Poznámka:
Některé klíče se ve výchozím nastavení nevytisknou v zobrazení tabulky. Mezi tyto klíče patří id, typea etag. Pokud je ve výstupu potřebujete, můžete pomocí funkce opětovného vytvoření klíče JMESPath změnit název klíče a vyhnout se filtrování.
az vm list --query "[].{objectID:id}" --output table
Další informace o použití dotazů k filtrování dat najdete v tématu Použití dotazů JMESPath v Azure CLI.
Formát výstupu TSV
Výstupní tsv formát vrátí hodnoty oddělené tabulátorem a novým řádekem bez dalšího formátování, kláves 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ýsledkem bude tabulátorově oddělený výstup.
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
Jedním z omezení výstupního tsv formátu je, že neexistuje záruka na řazení výstupu. Azure CLI se snaží zachovat řazení seřazením klíčů v abecedním formátu JSON odpovědi a následným tiskem jejich hodnot pro tsv výstup. Neexistuje žádná záruka, že objednávka je vždy stejná, protože formát odpovědi služby Azure se může změnit.
Pokud chcete vynutit konzistentní řazení, musíte použít --query parametr a formát seznamu s vícenásobným výběrem . Když příkaz Azure CLI vrátí jeden slovník JSON, použijte obecný formát [key1, key2, ..., keyN] k vynucení pořadí klíčů. U příkazů Azure CLI, které vracejí pole, použijte obecný formát [].[key1, key2, ..., keyN] k seřazení hodnot sloupců.
Pokud chcete například tyto informace uspořádat podle ID, umístění, skupiny prostředků a názvu virtuálního počítače:
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
Následující příklad ukazuje, jak můžete přesměrovat výstup tsv na jiné příkazy v prostředí Bash. Dotaz slouží k filtrování výstupu a vynucení řazení, grep vybere položky s textem RGD a pak cut příkaz vybere čtvrté pole, aby se ve výstupu zobrazil název virtuálního počítače.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
Výstupní tsv formát se často používá při přiřazování hodnot proměnným. Tento příklad získá ID aktivního předplatného a uloží ho do proměnné pro použití ve skriptu.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
Další --query příklady parametrů najdete v tématu Dotazování výstupu příkazu Azure CLI.
Žádný výstupní formát
Některé příkazy Azure CLI generují výstupní informace, které musíte chránit. Tady jsou čtyři příklady:
- Passwords
- Připojovací řetězce
- Tajemství
- Klíče
Pokud chcete chránit tajné kódy a klíče při použití příkazů Azure CLI, zvolte jednu z těchto možností:
| Možnost | Prospěch | Případ použití |
|---|---|---|
--output none výstupní formát |
Zabraňuje zobrazování citlivých informací ve vaší konzoli. Pokud příkaz selže, stále se zobrazí chybové zprávy. | 1. Použijte, když lze výstup příkazu načíst později. |
| 2. Použijte, pokud nepotřebujete výstup. | ||
| 3. Běžná volba, když se ke správě prostředků Azure používá spravovaná identita nebo služební principál. | ||
--query parametr |
Ukládá výstup do proměnné. | 1. Použijte, když se výstup příkazu nedá načíst později. |
| 2. Použijte, pokud potřebujete použít výstupní hodnotu příkazu ve skriptu. |
Načtěte informace o zabezpečení později
Některé tajné kódy Azure je možné načíst později. Příkladem jsou tajné kódy uložené ve službě Azure Key Vault. V tomto příkladu vytvořte tajný klíč služby Azure Key Vault pomocí příkazu az keyvault secret set s --output none možností. Tajný kód můžete načíst později pomocí příkazu az keyvault secret show .
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
Ukládání informací o zabezpečení do proměnné
Použití --query k ukládání výstupu do proměnné není technicky vzato výstupním formátem. Jedná se o řešení ochrany tajných kódů a je alternativou k použití --output none. Například při resetování přihlašovacích údajů pro objekt hlavní služby není možné heslo znovu získat.
Resetování přihlašovacích údajů instančního objektu vracející výstup ve výchozím formátu JSON:
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
Výstup konzoly zobrazující nové heslo v konzole
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
Lepším řešením je vrátit citlivé informace do proměnné.
# 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"
Další příklady ukládání výstupu do proměnné najdete v tématu Úspěšné použití Azure CLI – předání hodnot jinému příkazu. Další informace o --query syntaxi parametrů najdete v tématu Dotazování výstupu příkazu Azure CLI.
Nastavení výchozího formátu výstupu
Příkazy Azure CLI poskytují výstup, který lze ovládat dvěma způsoby:
| Výstupní ovládací prvek | Prospěch | Návod |
|---|---|---|
| Globální nastavení | Vyberte výchozí výstupní hodnotu, kterou používáte nejvíce, abyste nemuseli průběžně zadávat --output parametr pro každý referenční příkaz. |
Zadejte výchozí výstupní formát pomocí příkazu az config set. |
| Parametr příkazu | Zadejte výstup na úrovni příkazu a poskytněte skriptům maximální flexibilitu. Pro každý referenční příkaz řídíte výstup konzoly a vstup proměnných. | Přepište výchozí nastavení pomocí parametru referenčního --output příkazu. |
Výchozí výstup pro Azure CLI je json. Nastavte výchozí výstup na none, když není potřeba výstup konzole.
az config set core.output=none
Pomocí parametru --output můžete přepsat výchozí výstup libovolného referenčního příkazu Azure CLI. Tady je skript příkazů, které mění a testuje výstup příkazu:
# 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