Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать команды PowerShell или Azure CLI для сценариев или автоматизации запуска или остановки виртуальных машин Azure DevTest Labs. Например, можно использовать команды запуска или остановки для:
- Протестируйте трехуровневое приложение, где уровни должны начинаться в последовательности.
- Отключите виртуальные машины для экономии затрат, если они соответствуют пользовательским критериям.
- Запуск и остановка виртуальной машины при запуске и завершении непрерывной интеграции и непрерывной доставки (CI/CD). Пример этого рабочего процесса см. в статье Запуск фабрики образов из Azure DevOps.
Примечание.
Вы также можете запускать, останавливать или перезапускать виртуальные машины DevTest Labs с помощью портала Azure. Администраторы лаборатории могут использовать портал для настройки расписания автоматического запуска и автоматического завершения работы виртуальных машин лаборатории.
Предпосылки
- Доступ администратора к виртуальной машине лаборатории в DevTest Labs.
- Доступ к Azure PowerShell. Вы можете использовать среду PowerShell Azure Cloud Shell или установить Azure PowerShell для использования физической или виртуальной машины. При необходимости запустите
Update-Module -Name Az
, чтобы обновить установку.
Запуск или остановка виртуальной машины
Следующий скрипт PowerShell запускает или останавливает виртуальную машину в лаборатории с помощью командлета Invoke-AzResourceAction PowerShell. Параметр ResourceId
— это полный идентификатор виртуальной машины лаборатории, которую вы хотите запустить или остановить. Параметр Action
определяет, следует ли запускать или останавливать виртуальную машину в зависимости от нужного действия.
Если вы используете Cloud Shell, убедитесь, что выбрана среда PowerShell .
Используйте командлет PowerShell Connect-AzAccount для входа в учетную запись Azure. Если у вас есть несколько подписок Azure, раскомментируйте
Set-AzContext
и укажите подписку<SubscriptionId>
, которую вы хотите использовать.$sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
Задайте переменные путем предоставления собственных значений для
<lab name>
,<VM name>
а также того, следует ли использоватьStart
виртуальную машину илиStop
виртуальную машину.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" $vmAction = "<Start or Stop>"
Запустите или остановите виртуальную машину в зависимости от переданного значения
$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" }