Gambaran umum penyedia Terraform AzAPI

Penyedia AzAPI adalah lapisan tipis di atas AZURE ARM REST API. Penyedia AzAPI memungkinkan Anda mengelola jenis sumber daya Azure apa pun menggunakan versi API apa pun. Penyedia ini melengkapi penyedia AzureRM dengan mengaktifkan manajemen sumber daya dan properti Azure baru (termasuk pratinjau privat).

Sumber daya

Untuk memungkinkan Anda mengelola semua sumber daya dan fitur Azure tanpa memerlukan pembaruan, penyedia AzAPI menyertakan sumber daya generik berikut:

Nama Sumber Daya Deskripsi
azapi_resource Digunakan untuk sepenuhnya mengelola sumber daya (API) Azure (sarana kontrol) dengan CRUD penuh.
   Contoh Kasus Penggunaan:
      Layanan pratinjau baru
      Fitur baru ditambahkan ke layanan yang sudah ada
      Fitur/layanan yang ada saat ini tidak tercakup
azapi_update_resource Digunakan untuk mengelola sumber daya atau bagian sumber daya yang tidak memiliki CRUD penuh
   Contoh Kasus Penggunaan:
      Memperbarui properti baru pada layanan yang sudah ada
      Perbarui sumber daya anak yang telah dibuat sebelumnya - seperti catatan DNS SOA.

Contoh konfigurasi sumber daya

Cuplikan kode berikut mengonfigurasi sumber daya yang saat ini tidak ada di penyedia 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"
    }
  })
}

Cuplikan kode berikut mengonfigurasi properti pratinjau untuk sumber daya yang ada dari 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
    }
  })
}

Autentikasi menggunakan penyedia AzAPI

Penyedia AzAPI memungkinkan metode autentikasi yang sama dengan penyedia AzureRM. Untuk informasi selengkapnya tentang opsi autentikasi, lihat Mengautentikasi Terraform ke Azure.

Manfaat menggunakan penyedia AzAPI

Penyedia AzAPI menampilkan manfaat berikut:

  • Mendukung semua layanan Azure:
    • Layanan dan fitur pratinjau privat
    • Layanan dan fitur pratinjau publik
    • Semua versi API
  • Keakuratan file status Terraform penuh
    • Properti dan nilai disimpan ke status
  • Tidak ada dependensi pada Swagger
  • Autentikasi Azure umum dan konsisten

Pengalaman dan siklus hidup penyedia AzAPI

Bagian ini menjelaskan beberapa alat untuk membantu Anda menggunakan penyedia AzAPI.

Ekstensi Visual Studio Code dan Server Bahasa

Ekstensi AzAPI VS Code memberikan pengalaman penulisan yang kaya dengan manfaat berikut:

  • Intellisense
  • Penyelesaian otomatis kode
  • Petunjuk
  • Validasi sintaks
  • Info Cepat

Alat migrasi AzAPI2AzureRM

Penyedia AzureRM memberikan pengalaman Terraform yang paling terintegrasi untuk mengelola sumber daya Azure. Oleh karena itu, penggunaan yang direkomendasikan dari penyedia AzAPI dan AzureRM adalah sebagai berikut:

  1. Saat layanan atau fitur dalam pratinjau, gunakan penyedia AzAPI.
  2. setelah layanan dirilis secara resmi, gunakan penyedia AzureRM.

Alat AzAPI2AzureRM dirancang untuk membantu bermigrasi dari penyedia AzAPI ke penyedia AzureRM.

AzAPI2AzureRM adalah alat sumber terbuka yang mengotomatiskan proses konversi sumber daya AzAPI ke sumber daya AzureRM.

AzAPI2AzureRM memiliki dua mode: merencanakan dan memigrasikan:

  • Paket menampilkan sumber daya AzAPI yang dapat dimigrasikan.
  • Migrasikan sumber daya AzAPI ke sumber daya AzureRM dalam file HCL dan status.

AzAPI2AzureRM memastikan setelah migrasi bahwa konfigurasi dan status Terraform Anda selaras dengan status Anda yang sebenarnya. Anda dapat memvalidasi status telah diperbarui dengan menjalankan terraform plan setelah menyelesaikan migrasi untuk melihat bahwa tidak ada yang berubah.

Menggunakan penyedia AzAPI

  1. Menginstal ekstensi Visual Studio Code

  2. Tambahkan penyedia AzAPI ke konfigurasi Terraform Anda.

    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. Deklarasikan satu atau beberapa sumber daya AzAPI seperti yang ditunjukkan dalam contoh kode berikut:

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

Langkah berikutnya