Dela via


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

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.

  1. 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>"
    
  2. 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>"
    
  3. 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.

  1. 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>
    
  2. 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%
    
  3. Hämta namnet på resursgruppen som innehåller labbet.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Ersätt <resourceGroup> med det värde som du fick från föregående steg.

    set RESOURCEGROUP=<resourceGroup>
    
  5. 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%
    

Nästa steg