Dela via


Snabbstart: Skapa ett labb i Azure DevTest Labs med hjälp av Azure REST API

Kom igång med Azure DevTest Labs med hjälp av Azure REST API. Azure DevTest Labs omfattar en grupp resurser, till exempel virtuella Azure-datorer och nätverk. Med den här infrastrukturen kan du hantera resurserna bättre genom att ange gränser och kvoter. Med Azure REST API kan du hantera åtgärder på tjänster som finns på Azure-plattformen.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.

  • PowerShell Az-modulen har installerats. Kontrollera att du har den senaste versionen. Om det behövs kör du Update-Module -Name Az.

Förbereda begärandetext

Förbered begärandetexten som ska förbrukas av REST-anropet.

Kopiera och klistra in följande JSON-syntax i en fil med namnet body.json. Spara filen på den lokala datorn eller på ett Azure-lagringskonto.

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

Logga in till din Azure-prenumeration

  1. Ange ett lämpligt värde för variablerna och kör sedan skriptet.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. Från din arbetsstation loggar du in på din Azure-prenumeration med cmdleten PowerShell Connect-AzAccount och följer anvisningarna på skärmen.

    # 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
    

Skapa begärandekropp för inlämning

Syntaxen för PUT-begäran är:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15.

Kör följande PowerShell-skript för att skicka begärandevärdet till en parameter. Innehållet i begärandetexten skickas också till en 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

Hämta en autentiseringstoken

Använd följande kommandon för att hämta en autentiseringstoken:

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

Anropa REST-API:et

Använd följande kommandon för att anropa REST-API:et och granska svaret.

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

# Review output
$response | ConvertTo-Json

Svaret bör se ut ungefär så här:

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

Rensa resurser

Om du inte kommer att fortsätta att använda den här labbuppgiften tar du bort den med följande steg:

  1. Ange ett lämpligt värde för variablerna och kör sedan skriptet.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. Kör följande skript för att ta bort det namngivna labbet från 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
    

Nästa steg

I den här snabbstarten skapade du ett labb med hjälp av Azure REST API. För att lära dig hur du får tillgång till labbet, gå vidare till nästa handledning.