Udostępnij przez


Uruchamianie i zatrzymywanie maszyn wirtualnych usługi DevTest Labs za pomocą poleceń

W tym artykule pokazano, jak używać poleceń programu PowerShell lub interfejsu wiersza polecenia platformy Azure do tworzenia skryptów lub automatyzowania uruchamiania lub zatrzymywania maszyn wirtualnych usługi Azure DevTest Labs. Możesz na przykład użyć poleceń uruchamiania lub zatrzymywania, aby:

  • Przetestuj aplikację trójwarstwową, w której warstwy muszą być uruchamiane w sekwencji.
  • Wyłącz maszyny wirtualne, aby zaoszczędzić koszty, gdy spełniają kryteria niestandardowe.
  • Uruchamianie i zatrzymywanie maszyny wirtualnej w momencie rozpoczęcia i zakończenia przepływu pracy ciągłej integracji i ciągłego dostarczania (CI/CD).

Uwaga

Możesz również uruchomić, zatrzymać lub ponownie uruchomić maszyny wirtualne usługi DevTest Labs przy użyciu witryny Azure Portal. Administratorzy laboratorium mogą używać portalu do konfigurowania automatycznych harmonogramów uruchamiania i automatycznego zamykania maszyn wirtualnych laboratorium oraz zasad.

Wymagania wstępne

Uruchamianie lub zatrzymywanie maszyny wirtualnej

Poniższy skrypt programu PowerShell uruchamia lub zatrzymuje maszynę wirtualną w laboratorium przy użyciu polecenia cmdlet Invoke-AzResourceAction programu PowerShell. Parametr ResourceId jest w pełni kwalifikowanym identyfikatorem maszyny wirtualnej laboratorium, którą chcesz uruchomić lub zatrzymać. Parametr Action określa, czy należy uruchomić lub zatrzymać maszynę wirtualną, w zależności od wymaganej akcji.

  1. Jeśli używasz usługi Cloud Shell, upewnij się, że wybrano środowisko programu PowerShell .

  2. Użyj polecenia cmdlet Connect-AzAccount programu PowerShell, aby zalogować się do konta platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, usuń komentarz Set-AzContext i podaj, którego <SubscriptionId> chcesz użyć.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. Ustaw zmienne, podając własne wartości dla <lab name>, <VM name>, a także określając, czy należy Start lub Stop maszynę wirtualną.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. Uruchom lub zatrzymaj maszynę wirtualną na podstawie wartości przekazanej 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"
    }