Panoramica del provider AzAPI terraform

Il provider AzAPI è un livello sottile sopra le API REST arm di Azure. Il provider AzAPI consente di gestire qualsiasi tipo di risorsa di Azure usando qualsiasi versione dell'API. Questo provider integra il provider AzureRM abilitando la gestione di nuove risorse e proprietà di Azure (inclusa l'anteprima privata).

Risorse

Per consentire di gestire tutte le risorse e le funzionalità di Azure senza richiedere aggiornamenti, il provider AzAPI include le risorse generiche seguenti:

Nome della risorsa Descrizione
azapi_resource Usato per gestire completamente qualsiasi risorsa di Azure (piano di controllo) con CRUD completo.
   Casi d'uso di esempio:
      Nuovo servizio di anteprima
      Nuova funzionalità aggiunta al servizio esistente
      Funzionalità/servizio esistenti non attualmente coperti
azapi_update_resource Usato per gestire risorse o parti di risorse che non dispongono di CRUD completo
   Casi d'uso di esempio:
      Aggiornare le nuove proprietà in un servizio esistente
      Aggiornare la risorsa figlio creata in modo preliminare, ad esempio il record SOA DNS.

Esempi di configurazione delle risorse

Il frammento di codice seguente configura una risorsa che non esiste attualmente nel provider AzureRM:

resource "azapi_resource" "publicip" {
  type      = "Microsoft.Network/Customipprefixes@2021-03-01"
  name      = "exfullrange"
  parent_id = azurerm_resource_group.example.id
  location  = "westus2"

  body = jsonencode({
    properties = {
      cidr          = "10.0.0.0/24"
      signedMessage = "Sample Message for WAN"
    }
  })
}

Il frammento di codice seguente configura una proprietà di anteprima per una risorsa esistente da AzureRM:

resource "azapi_update_resource" "test" {
  type        = "Microsoft.ContainerRegistry/registries@2020-11-01-preview"
  resource_id = azurerm_container_registry.acr.id

  body = jsonencode({
    properties = {
      anonymousPullEnabled = var.bool_anonymous_pull
    }
  })
}

Autenticazione con il provider AzAPI

Il provider AzAPI abilita gli stessi metodi di autenticazione del provider AzureRM. Per altre informazioni sulle opzioni di autenticazione, vedere Autenticare Terraform in Azure.

Vantaggi dell'uso del provider AzAPI

Il provider AzAPI offre i vantaggi seguenti:

  • Supporta tutti i servizi di Azure:
    • Servizi e funzionalità di anteprima privata
    • Servizi e funzionalità di anteprima pubblica
    • Tutte le versioni dell'API
  • Fedeltà completa dei file di stato terraform
    • Le proprietà e i valori vengono salvati in stato
  • Nessuna dipendenza da Swagger
  • Autenticazione di Azure comune e coerente

Esperienza e ciclo di vita del provider AzAPI

Questa sezione descrive alcuni strumenti che consentono di usare il provider AzAPI.

Estensione vs Code e server di linguaggio

L'estensione AzAPI VS Code offre un'esperienza di creazione avanzata con i vantaggi seguenti:

  • IntelliSense
  • Completamento automatico del codice
  • Hint
  • Convalida della sintassi
  • Informazioni rapide

Strumento di migrazione AzAPI2AzureRM

Il provider AzureRM offre l'esperienza Terraform più integrata per la gestione delle risorse di Azure. Di conseguenza, l'utilizzo consigliato dei provider AzAPI e AzureRM è il seguente:

  1. Mentre il servizio o la funzionalità è in anteprima, usare il provider AzAPI.
  2. dopo il rilascio ufficiale del servizio, usare il provider AzureRM.

Lo strumento AzAPI2AzureRM è progettato per facilitare la migrazione dal provider AzAPI al provider AzureRM.

AzAPI2AzureRM è uno strumento open source che automatizza il processo di conversione delle risorse AzAPI in risorse di AzureRM.

AzAPI2AzureRM ha due modalità: pianificare ed eseguire la migrazione:

  • Il piano visualizza le risorse AzAPI di cui è possibile eseguire la migrazione.
  • Esegue la migrazione delle risorse AzAPI alle risorse di AzureRM sia nei file HCL che nello stato.

AzAPI2AzureRM garantisce che dopo la migrazione la configurazione e lo stato di Terraform siano allineati allo stato effettivo. È possibile verificare che lo stato sia stato aggiornato eseguendo terraform plan dopo aver completato la migrazione per verificare che non sia stato modificato alcun elemento.

Uso del provider AzAPI

  1. Installare l'estensione VS Code

  2. Aggiungere il provider AzAPI alla configurazione di Terraform.

    terraform {
      required_providers {
        azapi = {
          source  = "Azure/azapi"
        }
      }
    }
    
    provider "azapi" {
      # More information on the authentication methods supported by
      # the AzureRM Provider can be found here:
      # https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
    
      # subscription_id = "..."
      # client_id       = "..."
      # client_secret   = "..."
      # tenant_id       = "..."
    }
    
  3. Dichiarare una o più risorse AzAPI come illustrato nel codice di esempio seguente:

    resource "azapi_resource" "example" {
      name = "example"
      parent_id = data.azurerm_machine_learning_workspace.existing.id
      type = "Microsoft.MachineLearningServices/workspaces/computes@2021-07-01"
    
      location = "eastus"
      body = jsonencode({
        properties = {
          computeType      = "ComputeInstance"
          disableLocalAuth = true
          properties = {
            vmSize = "STANDARD_NC6"
          }
        }
      })
    }
    
    

Passaggi successivi