Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Pour résoudre une erreur de déploiement, vous pouvez activer la journalisation du débogage pour obtenir plus d’informations. La journalisation de débogage fonctionne pour les déploiements effectués avec des fichiers Bicep ou des modèles Azure Resource Manager (modèles ARM). Vous pouvez obtenir des données sur la demande et la réponse d’un déploiement pour découvrir la cause d’un problème.
Avertissement
La journalisation de débogage peut exposer des secrets tels que des mots de passe ou des opérations listKeys. Activez uniquement l’enregistrement de débogage lorsque vous devez résoudre une erreur de déploiement. Une fois le débogage terminé, vous devez supprimer l’historique du déploiement de débogage.
Configurer l’enregistrement de débogage
Utilisez Azure PowerShell pour activer la journalisation de débogage qui remplit les propriétés request et response avec les informations de déploiement pour la résolution des problèmes. La journalisation du débogage ne peut pas être activée à l’aide d’Azure CLI.
La journalisation de débogage n’est activée que pour le modèle ARM principal ou le fichier Bicep. Si vous utilisez des modèles ARM imbriqués ou des modules Bicep, consultez Déboguer les modèles imbriqués.
Pour un déploiement de groupe de ressources, utilisez New-AzResourceGroupDeployment et définissez le DeploymentDebugLogLevel paramètre sur All, ResponseContentou RequestContent.
Lorsque la journalisation du débogage est activée, un avertissement s’affiche : des secrets tels que des mots de passe ou des opérations listKeys peuvent être enregistrés et affichés lorsque vous utilisez des commandes comme Get-AzResourceGroupDeploymentOperation pour obtenir des informations sur les opérations de déploiement.
New-AzResourceGroupDeployment `
-Name exampledeployment `
-ResourceGroupName examplegroup `
-TemplateFile main.bicep `
-DeploymentDebugLogLevel All
La sortie du déploiement affiche le niveau de journalisation de débogage.
DeploymentDebugLogLevel : RequestContent, ResponseContent
Le DeploymentDebugLogLevel paramètre est disponible pour d’autres étendues de déploiement : abonnement, groupe d’administration et locataire.
Obtenir des informations de débogage
Une fois la journalisation du débogage activée, vous pouvez obtenir plus d’informations sur les opérations de déploiement. Les applets de commande Azure PowerShell pour les opérations de déploiement ne produisent pas les propriétés request et response. Vous devez utiliser Azure CLI pour obtenir les informations de ces propriétés.
Si vous n’activez pas la journalisation du débogage à partir de la commande de déploiement, vous pouvez toujours obtenir des informations sur les opérations de déploiement. Utilisez Azure PowerShell ou Azure CLI pour obtenir le code d’état, le message d’état et l’état d’approvisionnement.
Pour déployer un groupe de ressources, utilisez Get-AzResourceGroupDeploymentOperation pour obtenir les opérations de déploiement.
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
Vous pouvez spécifier une propriété, par exemple StatusCode, StatusMessageou ProvisioningState pour filtrer la sortie.
(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).StatusCode
Pour plus d’informations, consultez la documentation relative aux étendues des opérations de déploiement : abonnement, groupe d’administration et locataire.
Déboguer un modèle imbriqué
Le modèle ARM principal et les modèles imbriqués ont leur propre nom de déploiement et leur propre historique de déploiement. Le fichier et le module Bicep principaux utilisent également un nom de déploiement et un historique de déploiement distincts.
Modèle ARM
Pour journaliser les informations de débogage d’un modèle ARM imbriqué, utilisez Microsoft.Resources/deployments avec la propriété debugSetting.
L'exemple suivant montre un modèle imbriqué avec le debugSetting pour journaliser la requête et la réponse du déploiement.
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedTemplateDebug",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-05-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2"
}
]
},
"debugSetting": {
"detailLevel": "requestContent, responseContent"
}
}
}
],
Le modèle ARM principal et les modèles imbriqués ont leur propre nom de déploiement et leur propre historique de déploiement. Si vous souhaitez que les propriétés request et response contiennent des informations de résolution des problèmes, tenez compte des scénarios de déploiement suivants :
- Les propriétés
requestetresponsecontiennent les valeursnullpour le modèle principal et le modèle imbriqué lorsqueDeploymentDebugLogLeveln'est pas activé avec la commande de déploiement. - Lorsque la commande de déploiement permet les propriétés
DeploymentDebugLogLeveletrequest, celles-ci contiennent des informations uniquement pour le modèle principal. Les propriétés du modèle imbriqué contiennent desnullvaleurs. - Lorsqu'un modèle imbriqué utilise
debugSettinget que la commande de déploiement n'inclut pasDeploymentDebugLogLevel, seul le déploiement du modèle imbriqué a des valeurs pour les propriétésrequestetresponse. Les propriétés du modèle principal contiennent desnullvaleurs. - Pour obtenir le
requestpour le modèle principal et leresponsepour le modèle imbriqué, spécifiezDeploymentDebugLogLeveldans la commande de déploiement et utilisezdebugSettingdans le modèle imbriqué.
Fichier Bicep
La recommandation pour les fichiers Bicep est d’utiliser des modules plutôt que des modèles imbriqués avec Microsoft.Resources/deployments. Le message d’état, le code d’état et l’état d’approvisionnement incluent des informations pour le fichier et le module Bicep principaux que vous pouvez utiliser pour résoudre les problèmes de déploiement.
Si vous activez DeploymentDebugLogLevel dans la commande de déploiement, les propriétés request et response ne contiendront des informations que pour le déploiement du fichier Bicep principal.
Supprimer l’historique de déploiement de débogage
Une fois le débogage terminé, vous devez supprimer l’historique de déploiement pour empêcher toute personne ayant accès à des informations sensibles qui ont pu être journalisées. Pour chaque nom de déploiement que vous avez utilisé lors du débogage, exécutez la commande pour supprimer l’historique du déploiement.
Pour supprimer l’historique de déploiement d’un déploiement de groupe de ressources, utilisez Remove-AzResourceGroupDeployment.
Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment
La commande retourne True quand elle réussit.
Pour plus d’informations sur l’historique de déploiement, consultez la documentation relative aux étendues de déploiement : abonnement, groupe d’administration et locataire.