Tips för att använda Azure CLI
Azure CLI är ett kommandoradsverktyg som gör att du kan konfigurera och hantera Azure-resurser från många gränssnittsmiljöer. När du har valt önskad gränssnittsmiljö och installerat Azure CLI kan du använda den här artikeln för att hitta användbara tips om hur du undviker vanliga fallgropar och använder Azure CLI.
Mer information om specifika Azure CLI-kommandon finns i Azure CLI-referenslistan.
Välj ett skriptspråk
Azure CLI är ett verktyg med öppen källkod som du kan köra på många skriptspråk.
- Det är skriptspråket som avgör reglerna för citattecken, escape-tecken och radfortsättning för Azure CLI-kommandon.
- Det kan vara svårt att kopiera Azure CLI-kommandosyntax som innehåller enkla eller dubbla citattecken, escape-tecken eller radfortsättningstecken mellan språk.
- De flesta Microsoft-dokumentationen för Azure CLI är skriven och testad i Bash.
- Om PowerShell är ditt valfritt skriptspråk kan du överväga att använda verktyget Azure PowerShell, som har inbyggda funktioner för PowerShell-skriptspråk .
Mer information om skriptspråkalternativ för Azure CLI finns i Välj rätt kommandoradsverktyg.
Vanliga frågor
Här följer några länkar som hjälper dig att besvara de vanligaste azure CLI-frågorna:
Ämnesområde med artikellänk | Dricks |
---|---|
Arbeta bakom en proxy | Information om hur du arbetar över en proxyserver. |
Web Account Manager (WAM) | Information om WAM och hur du inaktiverar den. |
Konfigurationsinställningar | Lista över tillgängliga Azure CLI-konfigurationsinställningar, hur du aktiverar/inaktiverar Azure CLI-funktioner och anger standardvärden. |
Utdataformat | Instruktioner om hur du lagrar Azure-resurs-ID:er i variabler och skyddar hemligheter som returneras av Azure CLI-kommandon. |
Skicka JSON-värden i en sträng | Citera exempel för JSON-parametervärden. |
Supportlivscykel | Information om operativsystem som stöds, skriptspråk och tjänstens slut för Azure CLI-versioner och beroenden. |
REST-API | Alternativt az rest-kommando att använda när ett specifikt Azure CLI-kommando inte är tillgängligt för en Azure-resurs. |
Azure CLI-referensgrupper | En till Z-lista över Azure CLI-referensgrupper med ökad detaljnivå till undergrupper och alla Azure CLI-kommandon. |
Azure CLI-artiklar | En till Z-lista över snabbstarter, instruktionsguider och självstudier som använder Azure CLI-referenskommandon. Listan grupperas efter referensgrupp och undergrupp för enkel sökning. |
Azure CLI-exempel | En till Z-lista med exempel, inklusive dessa exempel i GitHub-lagringsplatsen Azure-samples/azure-cli-samples. |
Felsökning | Tips för felorsak och reparation. |
Nyheter | Kort sammanfattning av nya Azure CLI-funktioner. |
Skicka värden till ett annat kommando
Om värdet används mer än en gång tilldelar du det till en variabel. Med variabler kan du använda värden mer än en gång eller skapa mer allmänna skript. I det här exemplet tilldelas ett ID som hittas av kommandot az vm list till en variabel.
# 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
Om värdet bara används en gång bör du överväga rördragning. (Piping skickar utdata från ett kommando som indata till ett andra kommando.)
az vm list --query "[?powerState=='VM running'].name" --output tsv | grep my_vm
Överväg följande alternativ för listor med flera värden:
- Om du behöver fler kontroller i resultatet använder du en "for"-loop:
#!/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
- Du kan också använda
xargs
och överväga att använda-P
flaggan för att köra åtgärderna parallellt för bättre prestanda:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | xargs -I {} -P 10 az vm start --ids "{}"
- Slutligen har Azure CLI inbyggt stöd för att bearbeta kommandon med flera
--ids
parallellt för att uppnå samma effekt av xargs.@-
används för att hämta värden från röret:
az vm list --resource-group MyResourceGroup --show-details \
--query "[?powerState=='VM stopped'].id" \
--output tsv | az vm start --ids @-
Mer information om hur du använder Bash-konstruktioner med Azure CLI, inklusive loopar, ärendeinstruktioner, if.. då.. annars, och felhantering, se Lär dig att använda Bash med Azure CLI.
Vanliga uppdateringsparametrar
Azure CLI-kommandogrupper har ofta ett uppdateringskommando. Azure Virtual Machines innehåller till exempel kommandot az vm update. De flesta uppdateringskommandon erbjuder de tre vanliga parametrarna: --add
, --set
och --remove
.
Parametrarna --set
och --add
tar en lista över blankstegsavgränsade nyckel/värde-par: key1=value1 key2=value2
. Om du vill se vilka egenskaper du kan uppdatera använder du ett show-kommando, till exempel az vm show.
az vm show --resource-group VMResources --name virtual-machine-01
Om du vill förenkla kommandot bör du överväga att använda en JSON-sträng. Om du till exempel vill koppla en ny datadisk till en virtuell dator använder du följande värde:
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}"
Allmänna resurskommandon
En tjänst som du vill arbeta med kanske inte har Stöd för Azure CLI. Du kan använda az-resursen eller az rest-kommandona för att arbeta med dessa resurser.
Samtidig körning
Om du kör Azure CLI-kommandon samtidigt på samma dator kan skrivkonflikter inträffa om flera Azure CLI-kommandon skriver till samma MSAL-tokencache (Microsoft Authentication Library).
För att undvika potentiella fel isolerar du Azure CLI-konfigurationsmappen för varje skript genom att ange miljövariabeln AZURE_CONFIG_DIR
för varje skript till en separat katalog. Azure CLI-kommandon i skriptet sparar konfigurations- och tokencacheminnet på den konfigurerade platsen i stället för standardmappen ~/.azure
.
export AZURE_CONFIG_DIR=/my/config/dir
Asynkrona åtgärder
Åtgärder i Azure kan ta en märkbar tid. Till exempel är det inte omedelbart att konfigurera en virtuell dator i ett datacenter. Azure CLI väntar tills kommandot har slutförts för att acceptera andra kommandon. Många kommandon erbjuder därför en --no-wait
parameter som visas här:
az group delete --name MyResourceGroup --no-wait
När du tar bort en resursgrupp tas även alla resurser som tillhör den bort. Det kan ta lång tid att ta bort dessa resurser. När du kör kommandot med parametern --no-wait
accepterar konsolen nya kommandon utan att avbryta borttagningen.
Många kommandon erbjuder ett väntealternativ och pausar konsolen tills något villkor uppfylls. I följande exempel används kommandot az vm wait för att skapa oberoende resurser parallellt:
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
När båda ID:na har skapats kan du använda konsolen igen.
Skriptexempel
Här är exempel på hur du använder variabler och loopar genom en lista när du arbetar med Azure Virtual Machines. För djupgående exempel på hur du använder Bash-konstruktioner med Azure CLI, inklusive loopar, ärendeinstruktioner, if.. då.. annars, och felhantering, se Lär dig att använda Bash med Azure CLI.
Använd dessa skript för att spara ID:t till variabler:
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
Använd dessa skript för att loopa igenom en lista:
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
)