Skip to content
Learni
Voir tous les tutoriels
Cloud & DevOps

Comment déployer une infrastructure avec ARM en 2026

18 minINTERMEDIATE
Read in English

Introduction

Azure Resource Manager (ARM) reste le moteur de déploiement natif d'Azure en 2026. Il permet de décrire une infrastructure complète sous forme de templates JSON déclaratifs. Ce tutoriel intermédiaire vous guide dans la création d'un template ARM fonctionnel incluant paramètres, variables, ressources conditionnelles et sorties. Vous apprendrez à déployer ces templates via Azure CLI tout en évitant les erreurs classiques de validation et de dépendances. Chaque section inclut du code prêt à l'emploi.

Prérequis

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

Créer le template de base

azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "description": "Template ARM intermédiaire pour un compte de stockage"
  },
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {}
}

Ce fichier constitue la structure minimale valide d'un template ARM. Le schéma et la version de contenu sont obligatoires pour la validation par Azure Resource Manager.

Ajouter les paramètres

azuredeploy.json
{
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  }
}

Les paramètres permettent de rendre le template réutilisable. La contrainte minLength/maxLength évite les erreurs de nommage lors du déploiement.

Définir les variables et ressources

azuredeploy.json
{
  "variables": {
    "storageAccountType": "Standard_LRS"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[variables('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ]
}

Les variables centralisent les valeurs réutilisées. La ressource Storage Account utilise l'API 2023-01-01, toujours valide en 2026.

Ajouter les outputs

azuredeploy.json
{
  "outputs": {
    "storageAccountId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
    },
    "primaryEndpoint": {
      "type": "string",
      "value": "[reference(parameters('storageAccountName')).primaryEndpoints.blob]"
    }
  }
}

Les outputs exposent les valeurs utiles après déploiement (ID, endpoints). Elles sont essentielles pour chaîner les déploiements.

Script de déploiement Azure CLI

deploy.sh
#!/bin/bash
RG_NAME="rg-arm-demo-2026"
LOCATION="westeurope"
STORAGE_NAME="starmdemo$(date +%s)"

az group create --name $RG_NAME --location $LOCATION
az deployment group create \
  --resource-group $RG_NAME \
  --template-file azuredeploy.json \
  --parameters storageAccountName=$STORAGE_NAME

Ce script Bash crée le groupe de ressources puis déploie le template. Le nom unique du compte de stockage évite les conflits.

Bonnes pratiques

  • Toujours versionner les templates et utiliser des noms de paramètres explicites
  • Préférer les variables pour les valeurs calculées plutôt que des expressions répétées
  • Ajouter des descriptions dans les métadonnées des paramètres
  • Tester systématiquement avec What-If avant déploiement en production
  • Utiliser des modules Bicep pour les projets complexes tout en restant compatible ARM

Erreurs courantes à éviter

  • Oublier la propriété apiVersion sur les ressources (erreur 400)
  • Utiliser des noms de ressources non uniques sans suffixe aléatoire
  • Ignorer les dépendances implicites entre ressources
  • Ne pas valider le template avec az deployment group validate avant exécution

Pour aller plus loin

Découvrez nos formations avancées sur l'IaC Azure et les déploiements multi-environnements : https://learni-group.com/formations