이 문서에서는 PowerShell 또는 Azure CLI 명령을 사용하여 Azure DevTest Labs VM의 시작 또는 중지를 스크립팅하거나 자동화하는 방법을 보여 줍니다. 예를 들어 시작 또는 중지 명령을 사용하여 다음을 수행할 수 있습니다.
- 계층이 순서대로 시작되어야 하는 3계층 애플리케이션을 테스트합니다.
- 사용자 지정 기준을 충족하면 비용을 절감하기 위해 VM을 끕니다.
- CI/CD(연속 통합 및 지속적인 업데이트) 워크플로가 시작되고 완료될 때 VM을 시작하고 중지합니다. 이 워크플로의 예는 Azure DevOps에서 이미지 팩터리 실행을 참조하세요.
비고
Azure Portal을 사용하여 DevTest Labs VM을 시작, 중지 또는 다시 시작할 수도 있습니다. 랩 관리자는 포털을 사용하여 랩 VM에 대한 자동 시작 및 자동 종료 일정과 정책을 구성할 수 있습니다.
필수 조건
- DevTest Labs의 랩 VM에 대한 관리자 액세스.
- Azure PowerShell에 액세스합니다. Azure Cloud Shell PowerShell 환경을 사용하거나 Azure PowerShell을 설치하여 실제 또는 가상 머신을 사용할 수 있습니다. 필요한 경우
Update-Module -Name Az
를 실행하여 설치를 업데이트합니다.
VM 시작 또는 중지
다음 PowerShell 스크립트는 Invoke-AzResourceAction PowerShell cmdlet을 사용하여 랩에서 VM을 시작하거나 중지합니다. ResourceId
매개 변수는 시작하거나 중지하려는 랩 VM에 대한 정규화된 ID입니다. Action
매개 변수는 필요한 작업에 따라 VM을 시작하거나 중지할지 여부를 결정합니다.
Cloud Shell을 사용하는 경우 PowerShell 환경이 선택되었는지 확인합니다.
PowerShell Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다. Azure 구독이 여러 개 있는 경우
Set-AzContext
의 주석으로 처리를 제거하고 사용하려는<SubscriptionId>
를 제공합니다.$sub = Get-AzSubscription -ErrorAction SilentlyContinue if(-not($sub)) { Connect-AzAccount } # Set-AzContext -SubscriptionId "<Subscription ID>"
<lab name>
,<VM name>
에 대한 사용자 정의 값을 제공하고 VM을Start
할지 또는Stop
할지 여부를 지정하여 변수를 설정합니다.$devTestLabName = "<lab name>" $vMToStart = "<VM name>" $vmAction = "<Start or Stop>"
$vmAction
에 전달한 값에 따라 VM을 시작하거나 중지합니다.# 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" }