Tipy pro úspěšné používání Azure CLI
Azure CLI je nástroj příkazového řádku, který umožňuje konfigurovat a spravovat prostředky Azure z mnoha prostředí prostředí. Jakmile zvolíte upřednostňované prostředí a nainstalujete Azure CLI, v tomto článku se dozvíte užitečné tipy, jak se vyhnout běžným nástrahám a úspěšně používat Azure CLI.
Další informace o konkrétních příkazech Azure CLI najdete v seznamu referenčních informací k Azure CLI.
Volba skriptovacího jazyka
Azure CLI je opensourcový nástroj , který můžete spustit v mnoha skriptovacích jazycích.
- Je to skriptovací jazyk, který určuje pravidla pro uvozování, řídicí znak a pokračování řádku pro příkazy Azure CLI.
- Kopírování syntaxe příkazů Azure CLI obsahující jednoduché nebo dvojité uvozovky, řídicí znaky nebo znaky pokračování řádku mezi jazyky může být náročné.
- Většina dokumentace Microsoftu pro Azure CLI je napsaná a otestovaná v Bashu.
- Pokud je vaším jazykem skriptování jazyk, který si vyberete v PowerShellu, zvažte použití nástroje Azure PowerShellu, který má nativní funkce skriptovacího jazyka PowerShellu .
Další informace o možnostech skriptování jazyka pro Azure CLI najdete v tématu Volba správného nástroje příkazového řádku.
Často kladené dotazy
Tady jsou některé odkazy, které vám pomůžou zodpovědět nejčastější dotazy k Azure CLI:
Předmětná oblast s odkazem na článek | Tip |
---|---|
Práce za proxy serverem | Informace o tom, jak pracovat přes proxy server. |
Správce webových účtů (WAM) | Informace o WAM a o tom, jak ho zakázat |
Nastavení konfigurace | Seznam dostupných nastavení konfigurace Azure CLI, jak zapnout nebo vypnout funkce Azure CLI a nastavit výchozí hodnoty |
Formáty výstupu | Pokyny k ukládání ID prostředků Azure v proměnných a ochraně tajných kódů vrácených příkazy Azure CLI |
Předávání hodnot JSON v řetězci | Příklady uvozování hodnot parametrů JSON |
Životní cyklus podpory | Informace o podporovaných operačních systémech, skriptovacích jazycích a ukončení služby pro verze a závislosti Azure CLI. |
REST API | Alternativní příkaz az rest , který se má použít, když pro prostředek Azure není k dispozici konkrétní příkaz Azure CLI. |
Referenční skupiny Azure CLI | Seznam referenčních skupin Azure CLI až Z s přechodem k podrobnostem o podskupinách a všech příkazech Azure CLI |
Články o Azure CLI | Seznam rychlých startů, návodů a kurzů, které používají referenční příkazy Azure CLI Seznam je seskupený podle referenční skupiny a podskupiny pro snadné hledání. |
Ukázky Azure CLI | Seznam ukázek až Z, včetně těchto ukázek v úložišti Azure-samples/azure-cli-samples na GitHubu. |
Řešení potíží | Příčiny chyby a tipy pro nápravu |
Novinky | Krátký přehled nových funkcí Azure CLI |
Předání hodnot jinému příkazu
Pokud se hodnota používá více než jednou, přiřaďte ji proměnné. Proměnné umožňují používat hodnoty více než jednou nebo vytvářet obecnější skripty. Tento příklad přiřadí ID nalezené příkazem az vm list k proměnné.
# assign the list of running VMs to a variable
running_vm_ids=$(az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM running'].id" --output tsv)
# verify the value of the variable
echo $running_vm_ids
Pokud se hodnota použije jenom jednou, zvažte propojení. (Piping předává výstup jednoho příkazu jako vstup druhému příkazu.)
az vm list --query "[?powerState=='VM running'].name" --output tsv | grep my_vm
U seznamů s více hodnotami zvažte následující možnosti:
- Pokud potřebujete více ovládacích prvků ve výsledku, použijte smyčku "for":
#!/usr/bin/env bash
for vmList in $(az vm list --resource-group MyResourceGroup --show-details --query "[?powerState=='VM running'].id" -output tsv); do
echo stopping $vmList
az vm stop --ids $vmList
if [ $? -ne 0 ]; then
echo "Failed to stop $vmList"
exit 1
fi
echo $vmList stopped
done
- Případně můžete použít
xargs
příznak a zvážit použití příznaku-P
ke spuštění operací paralelně, aby se zlepšil výkon:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | xargs -I {} -P 10 az vm start --ids "{}"
- Azure CLI má navíc integrovanou podporu pro zpracování příkazů s několika
--ids
paralelně, aby se dosáhlo stejného efektu xargs.@-
slouží k získání hodnot z kanálu:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | az vm start --ids @-
Další informace o použití konstruktorů Bash s Azure CLI, včetně smyček, příkazů case, if.. potom.. jinak a zpracování chyb najdete v tématu Informace o použití bashe s Azure CLI.
Běžné parametry aktualizace
Skupiny příkazů Azure CLI často obsahují příkaz update. Azure Virtual Machines například zahrnuje příkaz az vm update. Většina aktualizačních příkazů nabízí tři společné parametry: --add
, --set
a --remove
.
--add
Parametry --set
mají seznam dvojic klíč-hodnota oddělených mezerami: key1=value1 key2=value2
. Pokud chcete zjistit, jaké vlastnosti můžete aktualizovat, použijte příkaz show, například az vm show.
az vm show --resource-group VMResources --name virtual-machine-01
Pokud chcete tento příkaz zjednodušit, zvažte použití řetězce JSON. Pokud například chcete k virtuálnímu počítači připojit nový datový disk, použijte následující hodnotu:
az vm update --resource-group VMResources --name virtual-machine-01 \
--add storageProfile.dataDisks "{\"createOption\": \"Attach\", \"managedDisk\":
{\"id\":
\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yg/providers/Microsoft.Compute/disks/yg-disk\"},
\"lun\": 1}"
Obecné příkazy prostředků
Služba, se kterou chcete pracovat, nemusí mít podporu Azure CLI. K práci s těmito prostředky můžete použít příkazy az resource nebo az rest .
Souběžné spuštění
Pokud spouštíte příkazy Azure CLI souběžně na stejném počítači, může dojít ke konfliktům zápisu, pokud do stejné mezipaměti tokenů Microsoft Authentication Library (MSAL) zapisuje více příkazů Azure CLI.
Pokud se chcete vyhnout potenciálním selháním, izolujte konfigurační složku Azure CLI pro každý skript nastavením proměnné AZURE_CONFIG_DIR
prostředí pro každý skript do samostatného adresáře. Příkazy Azure CLI v daném skriptu ukládají konfiguraci a mezipaměť tokenů do nakonfigurovaného umístění místo výchozí ~/.azure
složky.
export AZURE_CONFIG_DIR=/my/config/dir
Asynchronních operace
Operace v Azure můžou trvat značné množství času. Například konfigurace virtuálního počítače v datacentru není okamžitá. Azure CLI počká, dokud se příkaz nedokončí, aby přijímal další příkazy. Mnoho příkazů proto nabízí --no-wait
parametr, jak je znázorněno tady:
az group delete --name MyResourceGroup --no-wait
Když odstraníte skupinu prostředků, odeberou se také všechny prostředky, které do ní patří. Odebrání těchto prostředků může trvat dlouho. Při spuštění příkazu s parametrem --no-wait
konzola přijímá nové příkazy bez přerušení odebrání.
Mnoho příkazů nabízí možnost čekání, která konzolu pozastaví, dokud nebude splněna určitá podmínka. Následující příklad používá příkaz az vm wait k podpoře paralelního vytváření nezávislých prostředků:
az vm create --resource-group VMResources --name virtual-machine-01 --image centos --no-wait
az vm create --resource-group VMResources --name virtual-machine-02 --image centos --no-wait
subscription=$(az account show --query "id" -o tsv)
vm1_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-01"
vm2_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-02"
az vm wait --created --ids $vm1_id $vm2_id
Po vytvoření obou ID můžete konzolu znovu použít.
Příklady skriptu
Tady jsou příklady použití proměnných a procházení seznamu při práci se službou Azure Virtual Machines. Podrobné příklady použití konstruktorů Bash s Azure CLI, včetně smyček, příkazů case, if. potom.. jinak a zpracování chyb najdete v tématu Informace o použití bashe s Azure CLI.
Pomocí těchto skriptů uložte ID do proměnných:
ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
`az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
SET "vm_ids=%%F %vm_ids%" :: construct the id list
)
az vm stop --ids %vm_ids% :: CLI stops all VMs in parallel
Pomocí těchto skriptů můžete procházet seznam:
ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
`az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
ECHO Stopping %%F
az vm stop --ids %%F
)