Sdílet prostřednictvím


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
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:

  1. 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
  1. 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 "{}"
  1. 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, --seta --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
)

Viz také