Přehled zprostředkovatele Terraform AzAPI

Zprostředkovatel AzAPI je dynamická vrstva nad rozhraními REST API Azure ARM. Poskytovatel AzAPI umožňuje spravovat libovolný typ prostředku Azure pomocí libovolné verze rozhraní API. Tento poskytovatel doplňuje poskytovatele AzureRM povolením správy nových prostředků a vlastností Azure (včetně privátní verze Preview).

Zdroje informací

Aby bylo možné spravovat všechny prostředky a funkce Azure bez nutnosti aktualizací, poskytovatel AzAPI obsahuje následující obecné prostředky:

Název prostředku Popis
azapi_resource Slouží k úplné správě jakéhokoli prostředku Azure (řídicí roviny) s úplným CRUD.
   Příklady případů použití:
      Nová služba Preview
      Nová funkce přidaná do existující služby
      Stávající funkce nebo služba, které nejsou aktuálně pokryté
azapi_update_resource Slouží ke správě prostředků nebo částí prostředků, které nemají úplné CRUD.
   Příklady případů použití:
      Aktualizace nových vlastností ve stávající službě
      Aktualizace předem vytvořeného podřízeného prostředku – například záznam DNS SOA

Příklady konfigurace prostředků

Následující fragment kódu konfiguruje prostředek, který aktuálně neexistuje ve zprostředkovateli 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"
    }
  })
}

Následující fragment kódu nakonfiguruje vlastnost Preview pro existující prostředek z 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
    }
  })
}

Ověřování pomocí zprostředkovatele AzAPI

Zprostředkovatel AzAPI umožňuje stejné metody ověřování jako poskytovatel AzureRM. Další informace o možnostech ověřování najdete v tématu Ověřování Terraformu v Azure.

Výhody použití poskytovatele AzAPI

Poskytovatel AzAPI má následující výhody:

  • Podporuje všechny služby Azure:
    • Služby a funkce privátní verze Preview
    • Služby a funkce ve verzi Public Preview
    • Všechny verze rozhraní API
  • Úplná věrnost souboru stavu Terraformu
    • Vlastnosti a hodnoty se ukládají do stavu.
  • Bez závislosti na Swaggeru
  • Běžné a konzistentní ověřování Azure

Zkušenosti a životní cyklus poskytovatele AzAPI

Tato část popisuje některé nástroje, které vám pomůžou používat poskytovatele AzAPI.

Rozšíření VS Code a jazykový server

Rozšíření AzAPI VS Code poskytuje bohaté prostředí pro vytváření obsahu s následujícími výhodami:

  • Intellisense
  • Automatické dokončování kódu
  • Tipy
  • Ověření syntaxe
  • Rychlé informace

Nástroj pro migraci AzAPI2AzureRM

Poskytovatel AzureRM poskytuje nejvíce integrované prostředí Terraformu pro správu prostředků Azure. Proto doporučené použití poskytovatelů AzAPI a AzureRM je následující:

  1. Zatímco je služba nebo funkce ve verzi Preview, použijte poskytovatele AzAPI.
  2. po oficiálním vydání služby použijte poskytovatele AzureRM.

Nástroj AzAPI2AzureRM je navržený tak, aby pomohl migrovat z poskytovatele AzAPI na poskytovatele AzureRM.

AzAPI2AzureRM je opensourcový nástroj, který automatizuje proces převodu prostředků AzAPI na prostředky AzureRM.

AzAPI2AzureRM má dva režimy: plánování a migrace:

  • Plán zobrazí prostředky AzAPI, které je možné migrovat.
  • Migruje prostředky AzAPI do prostředků AzureRM v souborech HCL i ve stavu.

AzAPI2AzureRM zajišťuje po migraci, že konfigurace a stav Terraformu odpovídají vašemu skutečnému stavu. Stav můžete ověřit spuštěním terraform plan po dokončení migrace a zjistit, že se nic nezměnilo.

Použití poskytovatele AzAPI

  1. Instalace rozšíření VS Code

  2. Přidejte zprostředkovatele AzAPI do konfigurace Terraformu.

    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. Deklarujte jeden nebo více prostředků AzAPI, jak je znázorněno v následujícím ukázkovém kódu:

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

Další kroky