Delen via


Tips voor het geslaagde gebruik van de Azure CLI

Azure CLI is een opdrachtregelprogramma waarmee u Azure-resources vanuit veel shell-omgevingen kunt configureren en beheren. Nadat u de gewenste shell-omgeving hebt gekozen en de Azure CLI hebt geïnstalleerd, gebruikt u dit artikel om nuttige tips te ontdekken over het voorkomen van veelvoorkomende valkuilen en het gebruik van de Azure CLI.

Zie de azure CLI-referentielijst voor meer informatie over specifieke Azure CLI-opdrachten.

Een scripttaal kiezen

De Azure CLI is een opensource-hulpprogramma dat u in veel scripttalen kunt uitvoeren.

  • Dit is de scripttaal waarmee het quotings-, escape-teken- en regelvervolgregels voor Azure CLI-opdrachten worden bepaald.
  • Het kan lastig zijn om azure CLI-opdrachtsyntaxis met enkele of dubbele aanhalingstekens, escapetekens of regelvervolgtekens tussen talen te kopiëren.
  • De meeste Microsoft-documentatie voor de Azure CLI is geschreven en getest in Bash.
  • Als PowerShell de gewenste scripttaal is, kunt u overwegen het hulpprogramma Azure PowerShell te gebruiken, dat systeemeigen taalfunctionaliteit voor PowerShell-scripts heeft.

Zie Het juiste opdrachtregelprogramma kiezen voor meer informatie over taalopties voor scripts voor Azure CLI.

Veelgestelde vragen

Hier volgen enkele koppelingen om u te helpen de meest gestelde Vragen over Azure CLI te beantwoorden:

Onderwerpgebied met artikelkoppeling Tip
Web Account Manager (WAM) Informatie over WAM en hoe u deze kunt uitschakelen.
Configuratie-instellingen Lijst met beschikbare Azure CLI-configuratie-instellingen, het in-/uitschakelen van Azure CLI-functies en het instellen van standaardwaarden.
Uitvoerindelingen Instructies voor het opslaan van Azure-resource-id's in variabelen en het beveiligen van geheimen die worden geretourneerd door Azure CLI-opdrachten.
JSON-waarden doorgeven in een tekenreeks Voorbeelden voor JSON-parameterwaarden aanhalingstekens.
Ondersteuningslevenscyclus Informatie over ondersteunde besturingssystemen, scripttalen en het einde van de service voor Azure CLI-versies en afhankelijkheden.
REST API Alternatieve az rest-opdracht die moet worden gebruikt wanneer een specifieke Azure CLI-opdracht niet beschikbaar is voor een Azure-resource.
Azure CLI-referentiegroepen A-Z-lijst met Azure CLI-referentiegroepen met inzoomen op subgroepen en alle Azure CLI-opdrachten.
Azure CLI-artikelen Een tot Z-lijst met quickstarts, instructiegidsen en zelfstudies die gebruikmaken van Azure CLI-referentieopdrachten. De lijst is gegroepeerd op referentiegroep en subgroep voor eenvoudige zoekopdrachten.
Azure CLI-voorbeelden Een tot Z-lijst met voorbeelden, waaronder die voorbeelden in de GitHub-opslagplaats Azure-samples/azure-cli-samples.
Problemen oplossen Foutoorzaak en hersteltips.
Nieuwe functies Korte samenvatting van nieuwe Azure CLI-functies.

Waarden doorgeven aan een andere opdracht

Als de waarde meerdere keren wordt gebruikt, wijst u deze toe aan een variabele. Met variabelen kunt u waarden meer dan één keer gebruiken of meer algemene scripts maken. In dit voorbeeld wordt een id toegewezen die is gevonden met de opdracht az vm list aan een variabele.

# 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

Als de waarde slechts eenmaal wordt gebruikt, kunt u leidingen overwegen. (Piping geeft de uitvoer van één opdracht door als invoer aan een tweede opdracht.)

az vm list --query "[?powerState=='VM running'].name" --output tsv | grep my_vm

Houd rekening met de volgende opties voor lijsten met meerdere waarden:

  1. Als u meer besturingselementen voor het resultaat nodig hebt, gebruikt u een 'for'-lus:
#!/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. U kunt ook de -P vlag gebruiken xargs en gebruiken om de bewerkingen parallel uit te voeren voor verbeterde prestaties:
az vm list --resource-group MyResourceGroup --show-details \
    --query "[?powerState=='VM stopped'].id" \
    --output tsv | xargs -I {} -P 10 az vm start --ids "{}"
  1. Ten slotte biedt Azure CLI ingebouwde ondersteuning voor het verwerken van opdrachten met meerdere --ids parallel om hetzelfde effect van xargs te bereiken. @- wordt gebruikt om waarden op te halen uit de pijp:
az vm list --resource-group MyResourceGroup --show-details \
    --query "[?powerState=='VM stopped'].id" \
    --output tsv | az vm start --ids @-

Voor meer informatie over het gebruik van Bash-constructies met de Azure CLI, inclusief lussen, case-instructies, if.. dan.. zie Meer informatie over het gebruik van Bash met de Azure CLI.

Algemene updateparameters

Azure CLI-opdrachtgroepen bevatten vaak een updateopdracht. Azure Virtual Machines bevat bijvoorbeeld de opdracht az vm update. De meeste updateopdrachten bieden de drie algemene parameters: --add, --seten --remove.

De --set parameters --add nemen een lijst met door spaties gescheiden sleutel-waardeparen: key1=value1 key2=value2. Als u wilt zien welke eigenschappen u kunt bijwerken, gebruikt u een showopdracht, zoals az vm show.

az vm show --resource-group VMResources --name virtual-machine-01

U kunt de opdracht vereenvoudigen door een JSON-tekenreeks te gebruiken. Als u bijvoorbeeld een nieuwe gegevensschijf wilt koppelen aan een virtuele machine, gebruikt u de volgende waarde:

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}"

Algemene resourceopdrachten

Een service waarmee u wilt werken, heeft mogelijk geen Ondersteuning voor Azure CLI. U kunt de az-resource - of az rest-opdrachten gebruiken om met deze resources te werken.

Gelijktijdige uitvoering

Als u Azure CLI-opdrachten gelijktijdig uitvoert op dezelfde computer, kunnen schrijfconflicten optreden als meerdere Azure CLI-opdrachten naar dezelfde MSAL-tokencache (Microsoft Authentication Library) schrijven.

Als u potentiële fouten wilt voorkomen, moet u de Azure CLI-configuratiemap voor elk script isoleren door de omgevingsvariabele AZURE_CONFIG_DIR voor elk script in te stellen op een afzonderlijke map. Azure CLI-opdrachten in dat script slaan de configuratie en tokencache op de geconfigureerde locatie op in plaats van de standaardmap ~/.azure .

export AZURE_CONFIG_DIR=/my/config/dir

Asynchrone bewerkingen

Bewerkingen in Azure kunnen een merkbare hoeveelheid tijd in beslag nemen. Het configureren van een virtuele machine in een datacenter is bijvoorbeeld niet onmiddellijk. Azure CLI wacht totdat de opdracht is voltooid om andere opdrachten te accepteren. Veel opdrachten bieden daarom een --no-wait parameter zoals hier wordt weergegeven:

az group delete --name MyResourceGroup --no-wait

Wanneer u een resourcegroep verwijdert, worden ook alle resources verwijderd die bij deze groep horen. Het verwijderen van deze resources kan lang duren. Wanneer u de opdracht uitvoert met de --no-wait parameter, accepteert de console nieuwe opdrachten zonder de verwijdering te onderbreken.

Veel opdrachten bieden een wachtoptie, waarbij de console wordt onderbroken tot aan een bepaalde voorwaarde is voldaan. In het volgende voorbeeld wordt de opdracht az vm wait gebruikt ter ondersteuning van het parallel maken van onafhankelijke resources:

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

Nadat beide id's zijn gemaakt, kunt u de console opnieuw gebruiken.

Voorbeeldscripts

Hier volgen voorbeelden voor het gebruik van variabelen en het doorlopen van een lijst bij het werken met azure Virtual Machines. Voor uitgebreide voorbeelden van het gebruik van Bash-constructies met de Azure CLI, inclusief lussen, case-instructies, if.. dan.. zie Meer informatie over het gebruik van Bash met de Azure CLI.

Gebruik deze scripts om id's op te slaan in variabelen:

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

Gebruik deze scripts om een lijst te doorlopen:

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
)

Zie ook