Vue d’ensemble du fournisseur Terraform AzAPI

Le fournisseur AzAPI est une couche mince sur les API REST Azure ARM. Le fournisseur AzAPI vous permet de gérer n’importe quel type de ressource Azure à l’aide de n’importe quelle version d’API. Ce fournisseur complète le fournisseur AzureRM en activant la gestion des nouvelles ressources et propriétés Azure (y compris la préversion privée).

Ressources

Pour vous permettre de gérer toutes les ressources et fonctionnalités Azure sans nécessiter de mises à jour, le fournisseur AzAPI inclut les ressources génériques suivantes :

Nom de la ressource Description
azapi_resource Permet de gérer entièrement n’importe quelle ressource Azure (plan de contrôle) avec cruD complet.
   Exemples de cas d’usage :
      Nouveau service en préversion
      Nouvelle fonctionnalité ajoutée au service existant
      Fonctionnalité /service existant non couvert actuellement
azapi_update_resource Utilisé pour gérer des ressources ou des parties de ressources qui n’ont pas de CRUD complet
   Exemples de cas d’usage :
      Mettre à jour de nouvelles propriétés sur un service existant
      Mettez à jour la ressource enfant précréé, telle que l’enregistrement SOA DNS.

Exemples de configuration des ressources

L’extrait de code suivant configure une ressource qui n’existe pas actuellement dans le fournisseur 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"
    }
  })
}

L’extrait de code suivant configure une propriété en préversion pour une ressource existante à partir d’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
    }
  })
}

Authentification à l’aide du fournisseur AzAPI

Le fournisseur AzAPI active les mêmes méthodes d’authentification que le fournisseur AzureRM. Pour plus d’informations sur les options d’authentification, consultez Authentifier Terraform sur Azure.

Avantages de l’utilisation du fournisseur AzAPI

Le fournisseur AzAPI présente les avantages suivants :

  • Prend en charge tous les services Azure :
    • Services et fonctionnalités en préversion privée
    • Services et fonctionnalités en préversion publique
    • Toutes les versions de l’API
  • Fidélité complète du fichier d’état Terraform
    • Les propriétés et les valeurs sont enregistrées dans l’état
  • Aucune dépendance à Swagger
  • Authentification Azure commune et cohérente

Expérience et cycle de vie du fournisseur AzAPI

Cette section décrit certains outils pour vous aider à utiliser le fournisseur AzAPI.

Extension VS Code et serveur de langage

L’extension VS Code AzAPI offre une expérience de création riche avec les avantages suivants :

  • Intellisense
  • Saisie semi-automatique du code
  • Indicateurs
  • Validation de la syntaxe
  • Info express

Outil de migration AzAPI2AzureRM

Le fournisseur AzureRM offre l’expérience Terraform la plus intégrée pour la gestion des ressources Azure. Par conséquent, l’utilisation recommandée des fournisseurs AzAPI et AzureRM est la suivante :

  1. Pendant que le service ou la fonctionnalité est en préversion, utilisez le fournisseur AzAPI.
  2. une fois que le service est officiellement publié, utilisez le fournisseur AzureRM.

L’outil AzAPI2AzureRM est conçu pour faciliter la migration du fournisseur AzAPI vers le fournisseur AzureRM.

AzAPI2AzureRM est un outil open source qui automatise le processus de conversion de ressources AzAPI en ressources AzureRM.

AzAPI2AzureRM a deux modes : planifier et migrer :

  • Le plan affiche les ressources AzAPI qui peuvent être migrées.
  • Migrer les ressources AzAPI vers les ressources AzureRM dans les fichiers HCL et l’état.

AzAPI2AzureRM garantit après la migration que votre configuration et votre état Terraform sont alignés avec votre état réel. Vous pouvez valider que l’état a été mis à jour en exécutant terraform plan une fois la migration terminée pour voir que rien n’a changé.

Utilisation du fournisseur AzAPI

  1. Installer l’extension VS Code

  2. Ajoutez le fournisseur AzAPI à votre configuration 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. Déclarez une ou plusieurs ressources AzAPI, comme indiqué dans l’exemple de code suivant :

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

Étapes suivantes