Terraform AzAPI sağlayıcısına genel bakış

AzAPI sağlayıcısı, Azure ARM REST API'lerinin üzerinde ince bir katmandır. AzAPI sağlayıcısı, herhangi bir API sürümünü kullanarak herhangi bir Azure kaynak türünü yönetmenizi sağlar. Bu sağlayıcı, yeni Azure kaynaklarının ve özelliklerinin (özel önizleme dahil) yönetimini etkinleştirerek AzureRM sağlayıcısını tamamlar.

Kaynaklar

Güncelleştirme gerektirmeden tüm Azure kaynaklarını ve özelliklerini yönetmenize olanak sağlamak için AzAPI sağlayıcısı aşağıdaki genel kaynakları içerir:

Kaynak Adı Açıklama
azapi_resource Tüm Azure (denetim düzlemi) kaynaklarını (API) tam CRUD ile tam olarak yönetmek için kullanılır.
   Örnek Kullanım Örnekleri:
      Yeni önizleme hizmeti
      Mevcut hizmete yeni özellik eklendi
      Mevcut özellik / hizmet şu anda kapsanmayan
azapi_update_resource Tam CRUD'a sahip olmayan kaynakları veya kaynakların bölümlerini yönetmek için kullanılır
   Örnek Kullanım Örnekleri:
      Mevcut bir hizmette yeni özellikleri güncelleştirme
      DNS SOA kaydı gibi önceden oluşturulmuş alt kaynağı güncelleştirin.

Kaynak yapılandırma örnekleri

Aşağıdaki kod parçacığı şu anda AzureRM sağlayıcısında mevcut olmayan bir kaynağı yapılandırıyor:

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

Aşağıdaki kod parçacığı, AzureRM'den var olan bir kaynak için önizleme özelliğini yapılandırmaktadır:

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

AzAPI sağlayıcısını kullanarak kimlik doğrulaması

AzAPI sağlayıcısı, AzureRM sağlayıcısıyla aynı kimlik doğrulama yöntemlerini etkinleştirir. Kimlik doğrulama seçenekleri hakkında daha fazla bilgi için bkz . Terraform'un Azure'da kimliğini doğrulama.

AzAPI sağlayıcısını kullanmanın avantajları

AzAPI sağlayıcısı aşağıdaki avantajları sunar:

  • Tüm Azure hizmetlerini destekler:
    • Özel önizleme hizmetleri ve özellikleri
    • Genel önizleme hizmetleri ve özellikleri
    • Tüm API sürümleri
  • Tam Terraform durum dosyası uygunluğu
    • Özellikler ve değerler duruma kaydedilir
  • Swagger bağımlılığı yok
  • Yaygın ve tutarlı Azure kimlik doğrulaması

AzAPI sağlayıcısının deneyimi ve yaşam döngüsü

Bu bölümde, AzAPI sağlayıcısını kullanmanıza yardımcı olacak bazı araçlar açıklanmaktadır.

VS Code uzantısı ve Dil Sunucusu

AzAPI VS Code uzantısı, aşağıdaki avantajlarla zengin bir yazma deneyimi sağlar:

  • Intellisense
  • Kod otomatik tamamlama
  • İpuçları
  • Söz dizimi doğrulama
  • Hızlı bilgi

AzAPI2AzureRM geçiş aracı

AzureRM sağlayıcısı, Azure kaynaklarını yönetmek için en tümleşik Terraform deneyimini sağlar. Bu nedenle, AzAPI ve AzureRM sağlayıcılarının önerilen kullanımı aşağıdaki gibidir:

  1. Hizmet veya özellik önizleme aşamasındayken AzAPI sağlayıcısını kullanın.
  2. hizmet resmi olarak yayımlandıktan sonra AzureRM sağlayıcısını kullanın.

AzAPI2AzureRM aracı, AzAPI sağlayıcısından AzureRM sağlayıcısına geçişe yardımcı olmak için tasarlanmıştır.

AzAPI2AzureRM, AzAPI kaynaklarını AzureRM kaynaklarına dönüştürme işlemini otomatik hale getiren bir açık kaynak aracıdır.

AzAPI2AzureRM'nin iki modu vardır: planlama ve geçirme:

  • Plan, geçirilebilen AzAPI kaynaklarını görüntüler.
  • Geçişi, AzAPI kaynaklarını hem HCL dosyalarında hem de durumdaki AzureRM kaynaklarına geçirir.

AzAPI2AzureRM, geçiş sonrasında Terraform yapılandırmanızın ve durumunuzun gerçek durumunuzla uyumlu olmasını sağlar. Hiçbir şeyin değişmediğini görmek için geçişi tamamladıktan sonra çalıştırarak terraform plan durumun güncelleştirildiğini doğrulayabilirsiniz.

AzAPI sağlayıcısını kullanma

  1. VS Code uzantısını yükleme

  2. AzAPI sağlayıcısını Terraform yapılandırmanıza ekleyin.

    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. Aşağıdaki örnek kodda gösterildiği gibi bir veya daha fazla AzAPI kaynağı bildirin:

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

Sonraki adımlar