Condividi tramite


Guida introduttiva: Creare un laboratorio in Azure DevTest Labs usando l'API REST di Azure

Introduzione ad Azure DevTest Labs usando l'API REST di Azure. Azure DevTest Labs include un gruppo di risorse, ad esempio macchine virtuali e reti di Azure. Questa infrastruttura consente di gestire meglio tali risorse specificando limiti e quote. L'API REST di Azure consente di gestire le operazioni sui servizi ospitati nella piattaforma Azure.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creare un account gratuito.

  • Il modulo Az di PowerShell è installato. Assicurarsi di avere la versione più recente. Se necessario, eseguire Update-Module -Name Az.

Preparare il corpo della richiesta

Preparare il corpo della richiesta per essere utilizzato dalla chiamata REST.

Copiare e incollare la sintassi JSON seguente in un file denominato body.json. Salvare il file nel computer locale o in un account di archiviazione di Azure.

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

Accedere alla sottoscrizione di Azure.

  1. Specificare un valore appropriato per le variabili e quindi eseguire lo script.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. Dalla workstation accedere alla sottoscrizione di Azure con il cmdlet PowerShell Connect-AzAccount e seguire le istruzioni visualizzate.

    # 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
    

Corpo della richiesta di compilazione per l'invio

La sintassi per la richiesta PUT è:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15.

Eseguire gli script di PowerShell seguenti per passare il valore della richiesta a un parametro. Anche il contenuto del corpo della richiesta viene passato a un parametro.

# 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

Ottenere un token di autenticazione

Usare i comandi seguenti per recuperare un token di autenticazione:

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

Richiamare l'API REST

Usare i comandi seguenti per richiamare l'API REST ed esaminare la risposta.

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

# Review output
$response | ConvertTo-Json

La risposta dovrebbe essere simile al testo seguente:

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

Pulire le risorse

Se non si intende continuare a usare questo lab, eliminarlo con la procedura seguente:

  1. Specificare un valore appropriato per le variabili e quindi eseguire lo script.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. Eseguire lo script seguente per rimuovere il lab nominato su 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
    

Passaggi successivi

In questo avvio rapido, hai creato un laboratorio utilizzando l'API REST di Azure. Per sapere come accedere al laboratorio, avanza al tutorial successivo.