Übersicht über den Terraform AzAPI-Anbieter

Der AzAPI-Anbieter ist eine dünne Ebene über den Azure ARM-REST-APIs. Mit dem AzAPI-Anbieter können Sie jeden Azure-Ressourcentyp mithilfe einer beliebigen API-Version verwalten. Dieser Anbieter ergänzt den AzureRM-Anbieter, indem es die Verwaltung neuer Azure-Ressourcen und -Eigenschaften (einschließlich privater Vorschau) ermöglicht.

Ressourcen

Damit Sie alle Azure-Ressourcen und -Features verwalten können, ohne Dass Updates erforderlich sind, enthält der AzAPI-Anbieter die folgenden generischen Ressourcen:

Ressourcenname Beschreibung
azapi_resource Wird verwendet, um alle Azure-Ressourcen (Control Plane) (API) mit vollständiger CRUD vollständig zu verwalten.
   Beispielanwendungsfälle:
      Neuer Vorschaudienst
      Neues Feature zum vorhandenen Dienst hinzugefügt
      Vorhandene Features/Dienste, die derzeit nicht abgedeckt sind
azapi_update_resource Wird verwendet, um Ressourcen oder Teile von Ressourcen zu verwalten, die nicht über vollständige CRUD verfügen
   Beispielanwendungsfälle:
      Aktualisieren neuer Eigenschaften für einen vorhandenen Dienst
      Aktualisieren Sie die zuvor erstellte untergeordnete Ressource – z. B. DNS-SOA-Eintrag.

Ressourcenkonfigurationsbeispiele

Der folgende Codeausschnitt konfiguriert eine Ressource, die derzeit nicht im AzureRM-Anbieter vorhanden ist:

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

Der folgende Codeausschnitt konfiguriert eine Vorschaueigenschaft für eine vorhandene Ressource aus 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
    }
  })
}

Authentifizierung mithilfe des AzAPI-Anbieters

Der AzAPI-Anbieter ermöglicht die gleichen Authentifizierungsmethoden wie der AzureRM-Anbieter. Weitere Informationen zu Authentifizierungsoptionen finden Sie unter Authentifizieren von Terraform bei Azure.

Vorteile der Verwendung des AzAPI-Anbieters

Der AzAPI-Anbieter bietet die folgenden Vorteile:

  • Unterstützt alle Azure-Dienste:
    • Private Vorschaudienste und Features
    • Öffentliche Vorschaudienste und -features
    • Alle API-Versionen
  • Vollständige Terraform-Zustandsdateitreue
    • Eigenschaften und Werte werden im Zustand gespeichert.
  • Keine Abhängigkeit von Swagger
  • Allgemeine und konsistente Azure-Authentifizierung

Erfahrung und Lebenszyklus des AzAPI-Anbieters

In diesem Abschnitt werden einige Tools beschrieben, die Ihnen bei der Verwendung des AzAPI-Anbieters helfen.

VS Code-Erweiterung und Sprachserver

Die AzAPI VS Code-Erweiterung bietet eine umfangreiche Erstellungserfahrung mit den folgenden Vorteilen:

  • Intellisense
  • Automatische Codevervollständigung
  • Hinweise
  • Syntaxüberprüfung
  • QuickInfo

AzAPI2AzureRM-Migrationstool

Der AzureRM-Anbieter bietet die integriertste Terraform-Oberfläche für die Verwaltung von Azure-Ressourcen. Daher lautet die empfohlene Verwendung der AzAPI- und AzureRM-Anbieter wie folgt:

  1. Während sich der Dienst oder das Feature in der Vorschau befindet, verwenden Sie den AzAPI-Anbieter.
  2. Nachdem der Dienst offiziell veröffentlicht wurde, verwenden Sie den AzureRM-Anbieter.

Das AzAPI2AzureRM-Tool wurde entwickelt, um die Migration vom AzAPI-Anbieter zum AzureRM-Anbieter zu unterstützen.

AzAPI2AzureRM ist ein Open-Source-Tool, das das Konvertieren von AzAPI-Ressourcen in AzureRM-Ressourcen automatisiert.

AzAPI2AzureRM verfügt über zwei Modi: Planen und Migrieren:

  • Plan zeigt die AzAPI-Ressourcen an, die migriert werden können.
  • Migrieren Sie die AzAPI-Ressourcen zu AzureRM-Ressourcen sowohl in den HCL-Dateien als auch im Zustand.

AzAPI2AzureRM stellt nach der Migration sicher, dass Ihre Terraform-Konfiguration und ihr Zustand mit Ihrem tatsächlichen Zustand ausgerichtet sind. Sie können überprüfen, ob der Status aktualisiert wurde, indem Sie nach Abschluss der Migration ausführen terraform plan , um zu sehen, dass sich nichts geändert hat.

Verwenden des AzAPI-Anbieters

  1. Installieren der VS Code-Erweiterung

  2. Fügen Sie den AzAPI-Anbieter zu Ihrer Terraform-Konfiguration hinzu.

    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. Deklarieren Sie eine oder mehrere AzAPI-Ressourcen wie im folgenden Beispielcode dargestellt:

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

Nächste Schritte