Présentation de la technologie
Les ARM Templates sont des fichiers JSON qui définissent l’infrastructure et la configuration des ressources Azure. Ils permettent de déployer, mettre à jour et supprimer des ressources de manière cohérente et reproductible, en utilisant le concept d’Infrastructure as Code (IaC).
Principaux avantages :
- Déploiements cohérents et reproductibles
- Gestion des dépendances entre ressources
- Modularité et réutilisation du code
- Versionnage et contrôle des modifications
- Automatisation des déploiements
Structure d’un ARM Template
Un ARM Template se compose généralement des sections suivantes :
- Schema et version du contenu
- Paramètres
- Variables
- Ressources
- Sorties
Exemple de structure de base :
json
{
« $schema »: « https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json »,
« contentVersion »: « 1.0.0.0 »,
« parameters »: {},
« variables »: {},
« resources »: [],
« outputs »: {}
}
Mise en place technique
- Choisissez un éditeur de code (ex: Visual Studio Code avec l’extension ARM Tools)
- Créez un nouveau fichier avec l’extension .json
- Commencez par définir le schéma et la version du contenu
- Ajoutez les sections pour les paramètres, variables, ressources et sorties
- Définissez les ressources Azure à déployer dans la section « resources »
Exploitation technique courante
Déploiement d’un ARM Template
Via Azure CLI :
az deployment group create –resource-group <nom-groupe-ressources> –template-file <chemin-fichier-template> –parameters @<chemin-fichier-parametres>
Via Azure PowerShell :
powershell
New-AzResourceGroupDeployment -ResourceGroupName <nom-groupe-ressources> -TemplateFile <chemin-fichier-template> -TemplateParameterFile <chemin-fichier-parametres>
Utilisation des paramètres
Les paramètres permettent de rendre les templates plus flexibles et réutilisables :
json
« parameters »: {
« storageName »: {
« type »: « string »,
« minLength »: 3,
« maxLength »: 24
}
}
Utilisation des variables
Les variables permettent de simplifier le template et de réutiliser des valeurs :
json
« variables »: {
« storageAccountName »: « [concat(parameters(‘storageName’), uniqueString(resourceGroup().id))] »
}
Définition des ressources
Exemple de définition d’une ressource de compte de stockage :
json
« resources »: [
{
« type »: « Microsoft.Storage/storageAccounts »,
« apiVersion »: « 2021-04-01 »,
« name »: « [variables(‘storageAccountName’)] »,
« location »: « [resourceGroup().location] »,
« sku »: {
« name »: « Standard_LRS »
},
« kind »: « StorageV2 »
}
]
Utilisation des sorties
Les sorties permettent de récupérer des informations après le déploiement :
json
« outputs »: {
« storageAccountId »: {
« type »: « string »,
« value »: « [resourceId(‘Microsoft.Storage/storageAccounts’, variables(‘storageAccountName’))] »
}
}
Bonnes pratiques
- Utilisez des paramètres pour les valeurs qui changent entre les déploiements
- Nommez clairement vos ressources et utilisez des conventions de nommage cohérentes
- Utilisez des expressions de template pour dynamiser vos déploiements
- Testez vos templates dans un environnement de développement avant de les déployer en production
- Utilisez le mode de déploiement incrémentiel par défaut pour éviter la suppression accidentelle de ressources
En maîtrisant ces aspects des ARM Templates, vous serez en mesure de créer, déployer et gérer efficacement vos ressources Azure de manière automatisée et reproductible.