다음을 통해 공유


명령을 사용하여 DevTest Labs VM을 시작 및 중지합니다.

이 문서에서는 PowerShell 또는 Azure CLI 명령을 사용하여 Azure DevTest Labs VM의 시작 또는 중지를 스크립팅하거나 자동화하는 방법을 보여 줍니다. 예를 들어 시작 또는 중지 명령을 사용하여 다음을 수행할 수 있습니다.

  • 계층이 순서대로 시작되어야 하는 3계층 애플리케이션을 테스트합니다.
  • 사용자 지정 기준을 충족하면 비용을 절감하기 위해 VM을 끕니다.
  • CI/CD(연속 통합 및 지속적인 업데이트) 워크플로가 시작되고 완료될 때 VM을 시작하고 중지합니다. 이 워크플로의 예는 Azure DevOps에서 이미지 팩터리 실행을 참조하세요.

비고

Azure Portal을 사용하여 DevTest Labs VM을 시작, 중지 또는 다시 시작할 수도 있습니다. 랩 관리자는 포털을 사용하여 랩 VM에 대한 자동 시작자동 종료 일정과 정책을 구성할 수 있습니다.

필수 조건

VM 시작 또는 중지

다음 PowerShell 스크립트는 Invoke-AzResourceAction PowerShell cmdlet을 사용하여 랩에서 VM을 시작하거나 중지합니다. ResourceId 매개 변수는 시작하거나 중지하려는 랩 VM에 대한 정규화된 ID입니다. Action 매개 변수는 필요한 작업에 따라 VM을 시작하거나 중지할지 여부를 결정합니다.

  1. Cloud Shell을 사용하는 경우 PowerShell 환경이 선택되었는지 확인합니다.

  2. PowerShell Connect-AzAccount cmdlet을 사용하여 Azure 계정에 로그인합니다. Azure 구독이 여러 개 있는 경우 Set-AzContext의 주석으로 처리를 제거하고 사용하려는 <SubscriptionId>를 제공합니다.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. <lab name>, <VM name>에 대한 사용자 정의 값을 제공하고 VM을 Start할지 또는 Stop할지 여부를 지정하여 변수를 설정합니다.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. $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"
    }