Utiliser Azure PowerShell pour exporter un modèle
Pour aider à créer des modèles Azure Resource Manager, vous pouvez exporter un modèle à partir de ressources existantes. Le modèle exporté vous aide à comprendre la syntaxe JSON et les propriétés qui déploient vos ressources. Pour automatiser les déploiements futurs, commencez par le modèle exporté et modifiez-le en fonction de votre scénario. Le processus d’exportation d’un modèle tente de créer un modèle utilisable. Toutefois, la plupart des modèles exportés nécessitent certaines modifications avant de pouvoir être utilisés pour déployer des ressources Azure.
Resource Manager vous permet de choisir une ou plusieurs ressources pour l’exportation vers un modèle. Vous pouvez vous concentrer exactement sur les ressources dont vous avez besoin dans le modèle.
Cet article explique comment exporter des modèles via Azure PowerShell. Pour d'autres options, voir :
- Exporter un modèle avec Azure CLI
- Exporter un modèle avec le portail Azure
- Exportation de l’API REST à partir d’un groupe de ressources et Exportation de l’API REST à partir de l’historique de déploiement.
Il existe deux façons d’exporter un modèle :
Exporter à partir d’un groupe de ressources ou d’une ressource. Cette option génère un nouveau modèle à partir de ressources existantes. Le modèle exporté est un « instantané » de l’état actuel du groupe de ressources. Vous pouvez exporter un groupe de ressources complet ou des ressources spécifiques au sein de ce groupe de ressources.
Enregistrer à partir de l’historique. Cette option récupère une copie exacte d’un modèle utilisé pour le déploiement. Vous spécifiez le déploiement à partir de l’historique de déploiement.
Selon l’option choisie, les modèles exportés ont différentes qualités.
À partir d’un groupe de ressources ou d’une ressource | À partir de l’historique |
---|---|
Le modèle est généré automatiquement. Vous souhaiterez probablement améliorer le code avant de le déployer. | Le modèle est une copie exacte de celui créé par l’auteur du modèle. Il est prêt à être redéployé sans aucune modification. |
Le modèle est un instantané de l’état actuel des ressources. Il inclut toutes les modifications manuelles apportées après le déploiement. | Le modèle affiche uniquement l’état des ressources au moment du déploiement. Toutes les modifications manuelles apportées après le déploiement ne sont pas incluses. |
Vous pouvez sélectionner les ressources à exporter à partir d’un groupe de ressources. | Toutes les ressources pour un déploiement spécifique sont incluses. Vous ne pouvez pas choisir un sous-ensemble de ces ressources ou ajouter des ressources qui ont été ajoutés à un autre moment. |
Le modèle inclut toutes les propriétés des ressources, y compris certaines propriétés que vous ne définiriez normalement pas pendant le déploiement. Vous souhaiterez peut-être supprimer ou nettoyer ces propriétés avant de réutiliser le modèle. | Le modèle inclut uniquement les propriétés nécessaires au déploiement. Le modèle est plus éparse et plus facile à lire. |
Le modèle probablement n’inclut probablement pas tous les paramètres dont vous avez besoin pour le réutiliser. La plupart des valeurs de propriété sont codées en dur dans le modèle. Pour redéployer le modèle dans d’autres environnements, vous devez ajouter des paramètres qui augmentent la possibilité de configurer les ressources. Vous pouvez désélectionner Inclure des paramètres afin de pouvoir créer vos propres paramètres. | Le modèle inclut des paramètres qui permettent de facilement le redéployer dans différents environnements. |
Exportez le modèle à partir d’une ressource ou d’un groupe de ressources, lorsque :
- Vous devez capturer les modifications apportées aux ressources après le déploiement d’origine.
- Vous devez sélectionner les ressources à exporter.
- Les ressources n’ont pas été créées avec un modèle.
Exportez le modèle à partir de l’historique dans les cas suivants :
- Vous souhaitez un modèle facile à réutiliser.
- Vous n’avez pas besoin d’inclure les modifications apportées après le déploiement d’origine.
La réussite de l’exportation n’est pas garantie. L’exportation ne constitue pas un moyen efficace de transformer des ressources préexistantes en modèles utilisables en production. La création de ressources à partir de zéro au moyen d’un fichier Bicep écrit à la main, d’un modèle ARM ou terraform est conseillée.
Lors de l’exportation à partir d’un groupe de ressources ou d’une ressource, le modèle exporté est généré à partir des schémas publiés pour chaque type de ressource. Parfois, le schéma ne dispose pas de la dernière version d’un type de ressource. Vérifiez votre modèle exporté pour vous assurer qu’il comprend les propriétés dont vous avez besoin. Si nécessaire, modifiez le modèle exporté pour utiliser la version d’API dont vous avez besoin.
Certains paramètres de mot de passe peuvent être manquants dans les modèles exportés. Vous devez vérifier la référence des modèles et ajouter manuellement ces paramètres avant de pouvoir utiliser les modèles pour déployer des ressources.
La fonctionnalité d’exportation de modèle ne prend pas en charge l’exportation des ressources Azure Data Factory. Pour en savoir plus sur la façon dont vous pouvez exporter des ressources Data Factory, consultez Copier ou cloner une fabrique de données dans Azure Data Factory.
Pour exporter des ressources créées par le biais du modèle de déploiement classique, vous devez les migrer vers le modèle de déploiement de Resource Manager.
Si vous recevez un avertissement lors de l’exportation d’un modèle qui indique qu’un type de ressource n’a pas été exporté, vous pouvez toujours découvrir les propriétés pour cette ressource. Pour connaître les propriétés des ressources, consultez les informations de référence sur les modèles. Vous pouvez également consulter l’API REST Azure pour le type de ressource.
Le groupe de ressources pour lequel vous créez le modèle exporté est limité à 200 ressources. Si vous tentez d’exporter un groupe de ressources contenant plus de 200 ressources, le message d’erreur Export template is not supported for resource groups more than 200 resources
s’affiche.
Une fois que vous avez configuré votre groupe de ressources, vous pouvez exporter un modèle Resource Manager pour celui-ci.
Pour exporter toutes les ressources d’un groupe de ressources, utilisez l’applet de commande AzResourceGroup d’exportation et indiquez le nom du groupe de ressources.
Export-AzResourceGroup -ResourceGroupName demoGroup
Il enregistre le modèle dans un fichier local.
Plutôt que d’exporter toutes les ressources dans le groupe de ressources, vous pouvez sélectionner les ressources à exporter.
Pour exporter une ressource, transmettez cet ID de ressource.
$resource = Get-AzResource `
-ResourceGroupName <resource-group-name> `
-ResourceName <resource-name> `
-ResourceType <resource-type>
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource $resource.ResourceId
Pour exporter plusieurs ressources, transmettez les ID de ressource dans un tableau.
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource @($resource1.ResourceId, $resource2.ResourceId)
Lorsque vous exportez le modèle, vous pouvez spécifier si des paramètres sont utilisés dans celui-ci. Par défaut, les paramètres des noms de ressource sont inclus, mais ils n’ont pas de valeur par défaut.
"parameters": {
"serverfarms_demoHostPlan_name": {
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"type": "String"
}
}
Si vous utilisez le paramètre -SkipResourceNameParameterization
lors de l’exportation du modèle, les paramètres des noms de ressources ne sont pas inclus dans le modèle. Au lieu de cela, le nom de ressource est défini directement sur la ressource sur sa valeur actuelle. Vous ne pouvez pas personnaliser le nom au cours du déploiement.
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "demoHostPlan",
...
}
]
Si vous utilisez le paramètre -IncludeParameterDefaultValue
lors de l’exportation du modèle, le paramètre de modèle inclut une valeur par défaut qui est définie sur la valeur actuelle. Vous pouvez utiliser cette valeur par défaut ou remplacer la valeur par défaut en transmettant une valeur différente.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": "demoHostPlan",
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": "webSite3bwt23ktvdo36",
"type": "String"
}
}
Vous pouvez sauvegarder un modèle à partir d’un déploiement dans l’historique du déploiement. Le modèle que vous obtenez est exactement celui qui a été utilisé pour le déploiement.
Pour obtenir un modèle à partir d’un déploiement de groupe de ressources, utilisez l’applet de commande Save-AzResourceGroupDeploymentTemplate. Vous spécifiez le nom du déploiement à récupérer. Pour obtenir le nom d’un déploiement, consultez la section Afficher l’historique du déploiement avec Azure Resource Manager.
Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment
Le modèle est enregistré en tant que fichier local avec le nom du déploiement.
Pour obtenir des modèles déployés à d’autres niveaux, utilisez :
- Save-AzDeploymentTemplate pour les déploiements vers des abonnements
- Save-AzManagementGroupDeploymentTemplate pour les déploiements vers des groupes d’administration
- Save-AzTenantDeploymentTemplate pour les déploiements vers des locataires
- Découvrez comment exporter des modèles avec Azure CLI, leportail Azure ou l’API REST.
- Pour vous familiariser avec la syntaxe des modèles Resource Manager, consultez Comprendre la structure et la syntaxe des modèles Azure Resource Manager.
- Pour apprendre à développer des modèles, consultez les tutoriels pas à pas.