Uruchamianie i zatrzymywanie maszyn wirtualnych usługi DevTest Labs przy użyciu wierszy polecenia
W tym artykule pokazano, jak uruchomić lub zatrzymać Azure DevTest Labs maszyn wirtualnych przy użyciu Azure PowerShell lub wiersza polecenia interfejsu wiersza polecenia platformy Azure i skryptów.
Maszyny wirtualne usługi DevTest Labs można uruchamiać, zatrzymywać lub uruchamiać ponownie przy użyciu Azure Portal. Za pomocą portalu można również skonfigurować automatyczne uruchamianie i automatyczne harmonogramy zamykania oraz zasady dla maszyn wirtualnych laboratorium.
Jeśli chcesz utworzyć skrypt lub zautomatyzować uruchamianie lub zatrzymywanie maszyn wirtualnych laboratorium, użyj poleceń programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Można 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.
- Rozpocznij od rozpoczęcia przepływu pracy ciągłej integracji i ciągłego dostarczania (CI/CD) i zatrzymania po zakończeniu. Aby zapoznać się z przykładem tego przepływu pracy, zobacz Run an image factory from Azure DevOps (Uruchamianie fabryki obrazów z usługi Azure DevOps).
Wymagania wstępne
- Maszyna wirtualna laboratorium w usłudze DevTest Labs.
- W przypadku Azure PowerShell moduł Az programu PowerShell zainstalowany na stacji roboczej. Upewnij się, że masz najnowszą wersję. W razie potrzeby uruchom polecenie
Update-Module -Name Az
, aby zaktualizować moduł. - W przypadku interfejsu wiersza polecenia platformy Azure interfejs wiersza polecenia platformy Azure zainstalowany na stacji roboczej.
skrypt Azure PowerShell
Poniższy skrypt programu PowerShell uruchamia lub zatrzymuje maszynę wirtualną w laboratorium przy użyciu polecenia Invoke-AzResourceAction. 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.
Na stacji roboczej użyj polecenia cmdlet PowerShell Connect-AzAccount , aby zalogować się do konta platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, usuń komentarz z
Set-AzContext
wiersza i wypełnij<Subscription ID>
pole, którego chcesz użyć.# Sign in to your Azure subscription $sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
Podaj wartości dla elementów
<lab name>
i<VM name>
i wprowadź odpowiednią akcję dla elementu<Start or Stop>
.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" # The action on the virtual machine (Start or Stop) $vmAction = "<Start or Stop>"
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" }
Skrypt interfejsu wiersza polecenia platformy Azure
Poniższy skrypt udostępnia polecenia interfejsu wiersza polecenia platformy Azure do uruchamiania lub zatrzymywania maszyny wirtualnej laboratorium. Zmienne w tym skrypcie dotyczą środowiska systemu Windows, takiego jak wiersz polecenia. Powłoka Bash lub inne środowiska mają niewielkie różnice.
Podaj odpowiednie wartości dla
<Subscription ID>
,<lab name>
,<VM name>
i<Start or Stop>
akcji do wykonania.set SUBSCRIPTIONID=<Subscription ID> set DEVTESTLABNAME=<lab name> set VMNAME=<VM name> set ACTION=<Start or Stop>
Zaloguj się do swojego konta platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, usuń komentarz z wiersza,
az account set
aby użyć podanego identyfikatora subskrypcji.az login REM az account set --subscription %SUBSCRIPTIONID%
Pobierz nazwę grupy zasobów zawierającej laboratorium.
az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
Zastąp
<resourceGroup>
ciąg wartością uzyskaną w poprzednim kroku.set RESOURCEGROUP=<resourceGroup>
Uruchom wiersz polecenia, aby uruchomić lub zatrzymać maszynę wirtualną na podstawie wartości przekazanej do .
ACTION
az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%