Sdílet prostřednictvím


Použití příkazů ke spuštění a zastavení virtuálních počítačů DevTest Labs

Tento článek ukazuje, jak pomocí příkazů PowerShellu nebo Azure CLI skriptovat nebo automatizovat spouštění nebo zastavení pro virtuální počítače Azure DevTest Labs. Příkazy start nebo stop můžete například použít k:

  • Otestujte třívrstvou aplikaci, ve které se vrstvy musí spouštět v sekvenci.
  • Vypněte virtuální počítače, abyste ušetřili náklady, když splňují vlastní kritéria.
  • Spuštění a zastavení virtuálního počítače při zahájení a dokončení pracovního postupu kontinuální integrace a průběžného doručování (CI/CD).

Poznámka:

Virtuální počítače DevTest Labs můžete spustit, zastavit nebo restartovat pomocí webu Azure Portal. Správci testovacího prostředí můžou pomocí portálu nakonfigurovat plány a zásady automatického spuštění a vypnutí pro virtuální počítače testovacího prostředí.

Požadavky

Spuštění nebo zastavení virtuálního počítače

Následující skript PowerShellu spustí nebo zastaví virtuální počítač v testovacím prostředí pomocí rutiny PowerShellu Invoke-AzResourceAction . Parametr ResourceId je plně kvalifikované ID virtuálního počítače testovacího prostředí, který chcete spustit nebo zastavit. Parametr Action určuje, jestli se má virtuální počítač spustit nebo zastavit podle toho, jakou akci potřebujete.

  1. Pokud používáte Cloud Shell, ujistěte se, že je vybrané prostředí PowerShellu .

  2. Pomocí rutiny PowerShell Connect-AzAccount se přihlaste ke svému účtu Azure. Pokud máte více předplatných Azure, odkomentujte Set-AzContext a zadejte <SubscriptionId>, které chcete použít.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. Nastavte proměnné zadáním vlastních hodnot pro <lab name>, <VM name>, a rozhodněte, zda Start nebo Stop virtuální počítač.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. Spusťte nebo zastavte virtuální počítač na základě hodnoty, kterou jste předali do $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"
    }