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 구독에 로그인합니다.
변수에 적절한 값을 제공한 다음 스크립트를 실행합니다.
$subscription = "subscriptionID" $resourceGroup = "resourceGroupName" $labName = "labName" $file = "path\body.json"워크스테이션에서 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"
}
}
자원을 정리하세요
이 랩을 계속 사용하지 않려면 다음 단계를 수행하여 삭제합니다.
변수에 적절한 값을 제공한 다음 스크립트를 실행합니다.
$subscription = "subscriptionID" $resourceGroup = "resourceGroupName" $labName = "labName"다음 스크립트를 실행하여 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를 사용하여 랩을 만들었습니다. 랩에 액세스하는 방법을 알아보려면 다음 자습서로 진행합니다.