Déployer des environnements DevTest Labs en utilisant des modèles imbriqués
Un déploiement imbriqué exécute des modèles ARM (Azure Resource Manager) secondaires depuis un modèle principal. Cet article montre un exemple d’imbrication de modèles pour déployer un environnement Azure DevTest Labs. Les environnements DevTest Labs contiennent plusieurs machines virtuelles IaaS (Infrastructure-as-a-Service) avec des ressources PaaS (Platform-as-a-Service) installées. Vous pouvez provisionner les ressources PaaS et les machines virtuelles en utilisant des modèles ARM.
La décomposition d’un déploiement en un ensemble de modèles ciblés spécifiques à un certain usage offre des avantages en matière de test, de réutilisation et de lisibilité. Pour obtenir des informations générales sur les modèles imbriqués, y compris des exemples de code, consultez Utilisation de modèles liés et imbriqués lors du déploiement de ressources Azure.
Remarque
Le service ADE (Environnements de déploiement Azure) est fortement recommandé pour la création d’environnements. ADE donne aux développeurs les moyens de déployer rapidement une infrastructure d’application à l’aide de modèles basés sur des projets, ce qui garantit des environnements cohérents et sécurisés pour vos équipes de développement.
Pour en savoir plus sur le service Environnements de déploiement Azure, consultez la documentation sur le service Environnements de déploiement Azure.
Déployer des modèles avec imbriqués avec Visual Studio
Le modèle de projet de groupe de ressources Azure dans Visual Studio facilite le développement et le débogage de modèles ARM. Quand vous ajoutez un modèle imbriqué au fichier de modèle principal azuredeploy.json, Visual Studio ajoute les éléments suivants pour rendre le modèle plus flexible :
- Un sous-dossier avec le modèle secondaire et des fichiers de paramètres
- Des noms de variables dans le fichier de modèle principal
- Deux paramètres importants,
_artifactsLocation
et_artifactsLocationSasToken
Dans DevTest Labs, vous stockez des modèles ARM dans un dépôt Git que vous liez au labo. Quand vous utilisez un des modèles de dépôt liés pour créer un nouvel environnement, le déploiement copie les fichiers de modèle dans un conteneur Stockage Azure dans le labo. Quand vous ajoutez une ressource de modèle imbriqué au dépôt et au fichier de modèle principal, Visual Studio identifie les valeurs de _artifactsLocation
et de _artifactsLocationSasToken
, copie les sous-dossiers dans le conteneur de stockage et insère l’emplacement et le jeton de signature d’accès partagé (SAS) dans les fichiers de paramètres.
Structure de dossiers des modèles imbriqués
Dans l’exemple de modèle suivant, le dossier du dépôt Git contient un sous-dossier, nestedtemplates, avec les fichiers de modèle imbriqués NestOne.json et NestOne.parameters.json. Le fichier de modèle principal azuredeploy.json génère l’URI pour les modèles secondaires en utilisant l’emplacement des artefacts, le dossier des modèles imbriqués et le nom de fichier des modèles imbriqués. L’URI du fichier de paramètres correspond à l’emplacement des artefacts, du dossier de modèles imbriqués et du fichier de paramètres des modèles imbriqués. Vous pouvez ajouter des sous-dossiers de modèles imbriqués au dossier principal, mais à un seul niveau d’imbrication.
La capture d’écran suivante montre la structure du projet dans Visual Studio :
Exemple de déploiement imbriqué
L’exemple suivant montre le fichier du modèle ARM principal azuredeploy.json pour le déploiement imbriqué :
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"_artifactsLocation": {
"type": "string"
},
"_artifactsLocationSasToken": {
"type": "securestring"
}},
"variables": {
"NestOneTemplateFolder": "nestedtemplates",
"NestOneTemplateFileName": "NestOne.json",
"NestOneTemplateParametersFileName": "NestOne.parameters.json"},
"resources": [
{
"name": "NestOne",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2016-09-01",
"dependsOn": [ ],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parametersLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateParametersFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
}
}
}],
"outputs": {}
Étapes suivantes
- Pour plus d’informations sur les environnements DevTest Labs, consultez Utiliser des modèles ARM pour créer des environnements DevTest Labs.
- Pour plus d’informations sur l’utilisation du modèle de projet de groupe de ressources Azure pour Visual Studio, y compris des exemples de code, consultez Création et déploiement de groupes de ressources Azure via Visual Studio.