Activer l’enregistrement du débogage
Pour résoudre une erreur de déploiement, vous pouvez activer la journalisation de débogage afin d’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 de connaître 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é, supprimez l’historique de 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 des informations de déploiement à des fins de résolution des problèmes. La journalisation de 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ébogage d’un modèle imbriqué.
Pour un déploiement de groupe de ressources, utilisez New-AzResourceGroupDeployment afin de définir le paramètre DeploymentDebugLogLevel
sur All
, ResponseContent
ou RequestContent
.
Lorsque la journalisation de débogage est activée, un avertissement s’affiche. Il indique que des secrets tels que des mots de passe ou des opérations listKeys
peuvent être consignés et affichés lorsque vous utilisez des commandes de type Get-AzResourceGroupDeploymentOperation
pour obtenir des informations sur des 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 paramètre DeploymentDebugLogLevel
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 de débogage activée, vous pouvez obtenir des informations sur les opérations de déploiement. Les cmdlets Azure PowerShell relatives aux opérations de déploiement ne génèrent pas les propriétés request
ni response
. Vous devez utiliser Azure CLI pour tirer des informations de ces propriétés.
Vous pouvez obtenir des renseignements sur les opérations de déploiement même sans activer la journalisation de débogage avec la commande de déploiement. Utilisez Azure PowerShell ou Azure CLI pour récupérer le code d’état, le message d’état et l’état d’approvisionnement.
Pour un déploiement de groupe de ressources, utilisez Get-AzResourceGroupDeploymentOperation pour obtenir des opérations de déploiement.
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
Vous pouvez spécifier une propriété (par exemple StatusCode
, StatusMessage
ou 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ébogage d’un modèle imbriqué
Le modèle ARM principal et les modèles imbriqués possèdent leur propre nom de déploiement et leur propre historique de déploiement. Le module et le fichier Bicep principal 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 debugSetting
pour journaliser la demande 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 possèdent 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
request
etresponse
contiennent des valeursnull
pour le modèle principal et le modèle imbriqué quandDeploymentDebugLogLevel
n’est pas activé avec la commande de déploiement. - Lorsque la commande de déploiement active
DeploymentDebugLogLevel
, les propriétésrequest
etresponse
ne contiennent que des informations relatives au modèle principal. Les propriétés du modèle imbriqué comportent des valeursnull
. - Lorsqu’un modèle imbriqué utilise
debugSetting
et que la commande de déploiement n’inclut pasDeploymentDebugLogLevel
, seul le déploiement du modèle imbriqué comprend des valeurs pour les propriétésrequest
etresponse
. Les propriétés du modèle principal contiennent des valeursnull
. - Pour obtenir les informations
request
etresponse
du modèle principal et du modèle imbriqué, spécifiezDeploymentDebugLogLevel
dans la commande de déploiement et utilisezdebugSetting
dans le modèle imbriqué.
Fichier Bicep
La recommandation pour les fichiers Bicep consiste à 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 relatives au module et au fichier Bicep principal qui permettent de résoudre les problèmes de déploiement.
Si vous activez DeploymentDebugLogLevel
avec la commande de déploiement, les propriétés request
et response
ne contiennent que des informations relatives au déploiement du fichier Bicep principal.
Supprimer l’historique de déploiement de débogage
Une fois le débogage terminé, supprimez l’historique de déploiement pour empêcher toute personne disposant d’un accès d’afficher d’éventuelles informations sensibles enregistrées. Pour chacun des noms de déploiement utilisés lors du débogage, exécutez la commande permettant de supprimer l’historique de 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
une fois qu’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.