다음을 통해 공유


빠른 시작: Azure REST API를 사용하여 Azure DevTest Labs에서 랩 만들기

Azure REST API를 사용하여 Azure DevTest Labs를 시작합니다. Azure DevTest Labs는 Azure VM(가상 머신) 및 네트워크와 같은 리소스 그룹을 포함합니다. 이 인프라를 사용하면 제한 및 할당량을 지정하여 해당 리소스를 더 잘 관리할 수 있습니다. Azure REST API를 사용하면 Azure 플랫폼에서 호스트되는 서비스에 대한 작업을 관리할 수 있습니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 무료로 계정을 만듭니다.

  • 설치된 PowerShell Az 모듈 입니다. 최신 버전이 있는지 확인합니다. 필요하면 Update-Module -Name Az을(를) 실행하세요.

요청 본문 준비

REST 호출에서 사용할 요청 본문을 준비합니다.

다음 JSON 구문을 복사하여 파일에 body.json붙여넣습니다. 로컬 컴퓨터 또는 Azure Storage 계정에 파일을 저장합니다.

{
  "properties": {
    "labStorageType": "Standard"
  },
  "location": "westus2",
  "tags": {
    "Env": "alpha"
  }
}

Azure 구독에 로그인합니다.

  1. 변수에 적절한 값을 제공한 다음 스크립트를 실행합니다.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. 워크스테이션에서 PowerShell Connect-AzAccount cmdlet을 사용하여 Azure 구독에 로그인하고 화면의 지침을 따릅니다.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # If you have multiple subscriptions, set the one to use
    # Set-AzContext -SubscriptionId $subscription
    

제출 요청을 위한 본문 생성

PUT 요청의 구문은 다음과 같습니다.
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15;

다음 PowerShell 스크립트를 실행하여 요청 값을 매개 변수에 전달합니다. 요청 본문의 내용도 매개 변수에 전달됩니다.

# build URI
$URI = "https://management.azure.com/subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.DevTestLab/labs/$labName`?api-version=2018-09-15"

# build body
$body = Get-Content $file

인증 토큰 가져오기

다음 명령을 사용하여 인증 토큰을 검색합니다.

$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
    'Content-Type'='application/json'
    'Authorization'='Bearer ' + $token.AccessToken
}

REST API 호출

다음 명령을 사용하여 REST API를 호출하고 응답을 검토합니다.

# Invoke the REST API
$response = Invoke-RestMethod -Uri $URI -Method PUT -Headers $authHeader -Body $body

# Review output
$response | ConvertTo-Json

응답은 다음 텍스트와 유사해야 합니다.

{
    "properties":  {
                       "labStorageType":  "Standard",
                       "mandatoryArtifactsResourceIdsLinux":  [

                                                              ],
                       "mandatoryArtifactsResourceIdsWindows":  [

                                                                ],
                       "createdDate":  "2021-10-27T20:22:49.7495913+00:00",
                       "premiumDataDisks":  "Disabled",
                       "environmentPermission":  "Reader",
                       "announcement":  {
                                            "title":  "",
                                            "markdown":  "",
                                            "enabled":  "Disabled",
                                            "expired":  false
                                        },
                       "support":  {
                                       "enabled":  "Disabled",
                                       "markdown":  ""
                                   },
                       "provisioningState":  "Creating",
                       "uniqueIdentifier":  "uniqueID"
                   },
    "id":  "/subscriptions/ContosoID/resourcegroups/groupcontoso/providers/microsoft.devtestlab/labs/myotherlab",

    "name":  "myOtherLab",
    "type":  "Microsoft.DevTestLab/labs",
    "location":  "westus2",
    "tags":  {
                 "Env":  "alpha"
             }
}

자원을 정리하세요

이 랩을 계속 사용하지 않려면 다음 단계를 수행하여 삭제합니다.

  1. 변수에 적절한 값을 제공한 다음 스크립트를 실행합니다.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. 다음 스크립트를 실행하여 Azure DevTest Labs에서 명명된 랩을 제거합니다.

    # build URI
    $URI = "https://management.azure.com/subscriptions/$subscription/resourceGroups/$resourceGroup/providers/Microsoft.DevTestLab/labs/$labName`?api-version=2018-09-15"
    
    # obtain access token
    $azContext = Get-AzContext
    $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
    $profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
    $token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
    $authHeader = @{
        'Content-Type'='application/json'
        'Authorization'='Bearer ' + $token.AccessToken
    }
    
    # Invoke the REST API
    Invoke-RestMethod -Uri $URI -Method DELETE -Headers $authHeader
    

다음 단계

이 빠른 시작에서는 Azure REST API를 사용하여 랩을 만들었습니다. 랩에 액세스하는 방법을 알아보려면 다음 자습서로 진행합니다.