Använda kommandorader för att starta och stoppa virtuella DevTest Labs-datorer
Den här artikeln visar hur du startar eller stoppar Azure DevTest Labs virtuella datorer med hjälp av kommandorader och skript i Azure PowerShell eller Azure CLI.
Du kan starta, stoppa eller starta om virtuella DevTest Labs-datorer med hjälp av Azure Portal. Du kan också använda portalen för att konfigurera scheman för automatisk start och automatisk avstängning och principer för virtuella labbdatorer.
När du vill skapa skript eller automatisera start eller stopp för virtuella labbdatorer använder du PowerShell- eller Azure CLI-kommandon. Du kan till exempel använda start- eller stoppkommandon för att:
- Testa ett program med tre nivåer, där nivåerna måste starta i en sekvens.
- Inaktivera virtuella datorer för att spara kostnader när de uppfyller anpassade kriterier.
- Starta när ett CI/CD-arbetsflöde (kontinuerlig integrering och kontinuerlig leverans) börjar och stoppa när det är klart. Ett exempel på det här arbetsflödet finns i Köra en avbildningsfabrik från Azure DevOps.
Förutsättningar
- En virtuell labbdator i DevTest Labs.
- För Azure PowerShell är Az PowerShell-modulen installerad på din arbetsstation. Kontrollera att du har den senaste versionen. Om det behövs kör du
Update-Module -Name Az
för att uppdatera modulen. - För Azure CLI är Azure CLI installerat på din arbetsstation.
Azure PowerShell skript
Följande PowerShell-skript startar eller stoppar en virtuell dator i ett labb med hjälp av Invoke-AzResourceAction. Parametern ResourceId
är det fullständigt kvalificerade ID:t för den virtuella labbdator som du vill starta eller stoppa. Parametern Action
avgör om den virtuella datorn ska startas eller stoppas, beroende på vilken åtgärd du behöver.
Från din arbetsstation använder du cmdleten PowerShell Connect-AzAccount för att logga in på ditt Azure-konto. Om du har flera Azure-prenumerationer avkommenterar
Set-AzContext
du raden och fyller i den<Subscription ID>
du vill använda.# Sign in to your Azure subscription $sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
Ange värden för
<lab name>
och<VM name>
och ange vilken åtgärd du vill använda för<Start or Stop>
.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" # The action on the virtual machine (Start or Stop) $vmAction = "<Start or Stop>"
Starta eller stoppa den virtuella datorn baserat på det värde som du skickade till
$vmAction
.# Get the lab information $devTestLab = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $devTestLabName # Start or stop the VM and return a succeeded or failed status $returnStatus = Invoke-AzResourceAction ` -ResourceId "$($devTestLab.ResourceId)/virtualmachines/$vMToStart" ` -Action $vmAction ` -Force if ($returnStatus.Status -eq 'Succeeded') { Write-Output "##[section] Successfully updated DTL machine: $vMToStart, Action: $vmAction" } else { Write-Error "##[error] Failed to update DTL machine: $vMToStart, Action: $vmAction" }
Azure CLI-skript
Följande skript innehåller Azure CLI-kommandon för att starta eller stoppa en virtuell labbdator. Variablerna i det här skriptet är för en Windows-miljö, till exempel en kommandotolk. Bash eller andra miljöer har små variationer.
Ange lämpliga värden för
<Subscription ID>
,<lab name>
,<VM name>
och den åtgärd som<Start or Stop>
ska vidtas.set SUBSCRIPTIONID=<Subscription ID> set DEVTESTLABNAME=<lab name> set VMNAME=<VM name> set ACTION=<Start or Stop>
Logga in på ditt Azure-konto. Om du har flera Azure-prenumerationer avkommenterar du
az account set
raden för att använda prenumerations-ID:t som du angav.az login REM az account set --subscription %SUBSCRIPTIONID%
Hämta namnet på resursgruppen som innehåller labbet.
az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
Ersätt
<resourceGroup>
med det värde som du fick från föregående steg.set RESOURCEGROUP=<resourceGroup>
Kör kommandoraden för att starta eller stoppa den virtuella datorn baserat på det värde som du skickade till
ACTION
.az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%