Compartilhar via


Início Rápido: Criar um laboratório no Azure DevTest Labs usando a API REST do Azure

Comece a usar o Azure DevTest Labs usando a API REST do Azure. O Azure DevTest Labs abrange um grupo de recursos, como VMs (máquinas virtuais) e redes do Azure. Essa infraestrutura permite que você gerencie melhor esses recursos especificando limites e cotas. A API REST do Azure permite que você gerencie operações em serviços hospedados na plataforma do Azure.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.

  • O módulo Az do PowerShell foi instalado. Verifique se você tem a versão mais recente. Se necessário, execute Update-Module -Name Az.

Preparar o corpo da solicitação

Prepare o corpo da solicitação a ser consumido pela chamada REST.

Copie e cole a seguinte sintaxe JSON em um arquivo chamado body.json. Salve o arquivo em seu computador local ou em uma conta de armazenamento do Azure.

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

Entre em sua assinatura do Azure

  1. Forneça um valor apropriado para as variáveis e execute o script.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    $file = "path\body.json"
    
  2. Na estação de trabalho, entre em sua assinatura do Azure com o cmdlet Connect-AzAccount do PowerShell e siga as instruções na tela.

    # 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
    

Compilar o corpo da solicitação para envio

A sintaxe da solicitação PUT é:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}?api-version=2018-09-15.

Execute os scripts do PowerShell a seguir para passar o valor da solicitação para um parâmetro. O conteúdo do corpo da solicitação também é passado para um parâmetro.

# 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

Obter um token de autenticação

Use os seguintes comandos para recuperar um token de autenticação:

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

Invocar a API REST

Use os comandos a seguir para invocar a API REST e examinar a resposta.

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

# Review output
$response | ConvertTo-Json

A resposta deve ser semelhante ao seguinte texto:

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

Limpar os recursos

Se você não quiser continuar a usar este laboratório, exclua-o com as seguintes etapas:

  1. Forneça um valor apropriado para as variáveis e execute o script.

    $subscription = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $labName = "labName"
    
  2. Execute o script a seguir para remover o laboratório nomeado do 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
    

Próximas etapas

Neste início rápido, você criou um laboratório usando a API REST do Azure. Para saber como acessar o laboratório, avance para o próximo tutorial: