Skip to content
Learni
Voir tous les tutoriels
Cloud & DevOps

Comment déployer une infrastructure ARM sur Azure en 2026

Read in English

Introduction

Azure Resource Manager (ARM) est le service de déploiement et de gestion des ressources Azure. Les templates ARM permettent de décrire une infrastructure complète sous forme de code JSON, garantissant des déploiements reproductibles, traçables et conformes. En 2026, ARM reste essentiel pour les environnements d'entreprise exigeant un contrôle fin et une gouvernance stricte. Ce tutoriel vous guide pas à pas dans la création de templates professionnels, du modèle simple aux scénarios multi-ressources avec paramètres et sorties.

Prérequis

  • Compte Azure avec permissions Contributor
  • Azure CLI 2.50+ ou Azure PowerShell
  • Connaissances de base en JSON et en ressources Azure
  • Éditeur de code (VS Code recommandé avec extension Azure)

Créer le template ARM de base

main.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ]
}

Ce template JSON minimal crée un compte de stockage. Le schéma et la version de contenu sont obligatoires. Les paramètres permettent de réutiliser le template.

Ajouter un fichier de paramètres

parameters.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "value": "learniarmdemo2026"
    }
  }
}

Le fichier parameters.json sépare les valeurs du template. Cela permet de réutiliser le même template pour différents environnements (dev, prod).

Déploiement via Azure CLI

deploy.sh
#!/bin/bash
RG_NAME="rg-arm-demo"
LOCATION="westeurope"

az group create --name $RG_NAME --location $LOCATION
az deployment group create \
  --resource-group $RG_NAME \
  --template-file main.json \
  --parameters @parameters.json

Ce script Bash crée le groupe de ressources puis déploie le template. Toujours valider le template avant déploiement en production.

Ajouter des outputs au template

main.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[resourceGroup().location]",
      "sku": { "name": "Standard_LRS" },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
    }
  }
}

Les outputs exposent des valeurs utiles après déploiement, comme les IDs de ressources pour chaîner d'autres déploiements.

Validation du template

validate.sh
#!/bin/bash
az deployment group validate \
  --resource-group rg-arm-demo \
  --template-file main.json \
  --parameters @parameters.json

La validation détecte les erreurs de syntaxe et de dépendances avant tout déploiement réel, évitant les coûts inutiles.

Bonnes pratiques

  • Toujours utiliser des paramètres et des variables pour éviter la duplication
  • Ajouter des descriptions et des métadonnées dans chaque template
  • Versionner les templates et utiliser des conventions de nommage strictes
  • Tester systématiquement en environnement de préproduction
  • Préférer Bicep pour les nouveaux projets tout en maîtrisant ARM pour la maintenance legacy

Erreurs courantes à éviter

  • Oublier de déclarer les dépendances entre ressources (dependsOn)
  • Utiliser des noms de ressources en dur au lieu de paramètres
  • Ignorer la validation préalable du template
  • Ne pas gérer les erreurs de déploiement avec des scripts conditionnels

Pour aller plus loin

Approfondissez vos compétences ARM et Bicep avec nos formations expertes. Découvrez nos formations Learni.

Comment déployer une infrastructure ARM sur Azure en 2026 | Learni