Aracılığıyla paylaş


Hızlı Başlangıç: Azure REST API kullanarak Azure DevTest Labs'de laboratuvar oluşturma

Azure REST API'sini kullanarak Azure DevTest Labs'i kullanmaya başlayın. Azure DevTest Labs, Azure sanal makineleri (VM' ler) ve ağlar gibi bir grup kaynağı kapsar. Bu altyapı, sınırları ve kotaları belirterek bu kaynakları daha iyi yönetmenizi sağlar. Azure REST API, Azure platformunda barındırılan hizmetler üzerindeki işlemleri yönetmenize olanak tanır.

Önkoşullar

  • Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.

  • PowerShell Az Modülü yüklü. En son sürüme sahip olduğunuzdan emin olun. Gerekirse komutunu çalıştırın Update-Module -Name Az.

İstek gövdesini hazırla

REST çağrısı tarafından kullanılacak istek gövdesini hazırlayın.

Aşağıdaki JSON söz dizimini kopyalayıp adlı body.jsonbir dosyaya yapıştırın. Dosyayı yerel makinenize veya bir Azure depolama hesabına kaydedin.

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

Azure aboneliğinizde oturum açın

  1. Değişkenler için uygun bir değer sağlayın ve ardından betiği çalıştırın.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. İş istasyonunuzda PowerShell Connect-AzAccount cmdlet'iyle Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin.

    # 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
    

Gönderim için istek gövdesi oluşturma

PUT isteğinin söz dizimi şöyledir:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15.

İstek değerini bir parametreye geçirmek için aşağıdaki PowerShell betiklerini yürütün. İstek gövdesinin içeriği de bir parametreye geçirilir.

# 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

Kimlik doğrulama belirteci edinin

Kimlik doğrulama belirtecini almak için aşağıdaki komutları kullanın:

$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'yi çağırma

REST API'yi çağırmak ve yanıtı gözden geçirmek için aşağıdaki komutları kullanın.

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

# Review output
$response | ConvertTo-Json

Yanıt aşağıdaki metne benzer görünmelidir:

{
    "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"
             }
}

Kaynakları temizle

Bu laboratuvarı kullanmaya devam etmeyecekseniz aşağıdaki adımları izleyerek silin:

  1. Değişkenler için uygun bir değer sağlayın ve ardından betiği çalıştırın.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. Belirtilen laboratuvarı Azure DevTest Labs'ten kaldırmak için aşağıdaki betiği çalıştırın.

    # 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
    

Sonraki Adımlar

Bu hızlı başlangıçta Azure REST API'sini kullanarak bir laboratuvar oluşturdunuz. Laboratuvara nasıl erişeceğinizi öğrenmek için sonraki öğreticiye geçin: