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.
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.
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.
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.
Azure CLI
# assign the list of running VMs to a variablerunning_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.)
Azure CLI
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:
Azure CLI
#!/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 [ $? -ne0]; 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:
Azure CLI
az vm list --resource-group MyResourceGroup --show-details \
--query"[?powerState=='VM stopped'].id" \
--output tsv | xargs -I {} -P10 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:
Azure CLI
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, --setoch --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.
Azure CLI
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:
Azure CLI
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 .
Å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:
Azure CLI
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:
Azure CLI
az vm create --resource-group VMResources --name virtual-machine-01--image centos --no-waitaz vm create --resource-group VMResources --name virtual-machine-02--image centos --no-waitsubscription=$(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
Azure CLI
$vm_ids=(az vm list --resource-group VMResources --show-details--query"[?powerState=='VM running'].id"--output tsv)
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
)
Azure CLI
$vm_ids=(az vm list --resource-group VMResources --show-details--query"[?powerState=='VM running'].id"--output tsv)
foreach ($vm_id in $vm_ids) {
Write-Output"Stopping $vm_id"
az vm stop --ids$vm_id
}
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.
Feedback om Azure CLI
Azure CLI är ett öppen källkod projekt. Välj en länk för att ge feedback:
Lär dig hur du använder plattformsoberoende Azure CLI för att skapa, starta, stoppa och utföra andra administrativa uppgifter som är relaterade till virtuella datorer i Azure.