Delen via


Quickstart: Een lab maken in Azure DevTest Labs met behulp van Azure REST API

Ga aan de slag met Azure DevTest Labs met behulp van de Azure REST API. Azure DevTest Labs omvat een groep resources, zoals virtuele Azure-machines (VM's) en netwerken. Met deze infrastructuur kunt u deze resources beter beheren door limieten en quota op te geven. Met de Azure REST API kunt u bewerkingen beheren op services die worden gehost op het Azure-platform.

Vereiste voorwaarden

  • Een Azure-account met een actief abonnement. Gratis een account maken

  • De PowerShell Az-module is geïnstalleerd. Zorg ervoor dat u de nieuwste versie hebt. Voer indien nodig de opdracht uit Update-Module -Name Az.

Aanvraagbody voorbereiden

Bereid de request body voor om te worden gebruikt door de REST-aanroep.

Kopieer en plak de volgende JSON-syntaxis in een bestand met de naam body.json. Sla het bestand op uw lokale computer of in een Azure-opslagaccount op.

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

Aanmelden bij uw Azure-abonnement

  1. Geef een geschikte waarde op voor de variabelen en voer vervolgens het script uit.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. Meld u vanaf uw werkstation aan bij uw Azure-abonnement met de cmdlet PowerShell Connect-AzAccount en volg de instructies op het scherm.

    # 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
    

Hoofdtekst van buildaanvraag voor verzending

De syntaxis voor de PUT-aanvraag is:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15.

Voer de volgende PowerShell-scripts uit om de aanvraagwaarde door te geven aan een parameter. De inhoud van de aanvraagbody wordt ook doorgegeven aan een parameter.

# 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

Een verificatietoken verkrijgen

Gebruik de volgende opdrachten om een verificatietoken op te halen:

$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
}

De REST API aanroepen

Gebruik de volgende opdrachten om de REST API aan te roepen en het antwoord te controleren.

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

# Review output
$response | ConvertTo-Json

Het antwoord moet er ongeveer uitzien als de volgende tekst:

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

De hulpbronnen opschonen

Als u dit lab niet meer gaat gebruiken, verwijdert u het lab met de volgende stappen:

  1. Geef een geschikte waarde op voor de variabelen en voer vervolgens het script uit.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. Voer het volgende script uit om het benoemde lab te verwijderen uit 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
    

Volgende stappen

In deze quickstart hebt u een lab gemaakt met behulp van de Azure REST API. Als u wilt weten hoe u toegang krijgt tot het lab, gaat u verder met de volgende zelfstudie: