Abilitazione della registrazione di debug
Per risolvere un errore di distribuzione, è possibile abilitare la registrazione di debug per ottenere altre informazioni. La registrazione di debug funziona per le distribuzioni con i file Bicep o i modelli di Azure Resource Manager (modelli di Resource Manager). È possibile ottenere dati sulla richiesta e sulla risposta di una distribuzione per apprendere la causa di un problema.
Avviso
La registrazione di debug può esporre segreti come password o listKeys
operazioni. Abilitare solo la registrazione del debug quando è necessario risolvere un errore di distribuzione. Al termine del debug, è necessario rimuovere la cronologia della distribuzione di debug.
Configurare la registrazione di debug
Usare Azure PowerShell per abilitare la registrazione di debug che popola le request
proprietà e response
con le informazioni sulla distribuzione per la risoluzione dei problemi. Impossibile abilitare la registrazione di debug usando l'interfaccia della riga di comando di Azure.
La registrazione di debug è abilitata solo per il modello arm principale o per il file Bicep. Se si usano modelli di Resource Manager annidati o moduli Bicep, vedere Eseguire il debug del modello annidato.
Per una distribuzione di un gruppo di risorse, usare New-AzResourceGroupDeployment e impostare il DeploymentDebugLogLevel
parametro su All
, ResponseContent
o RequestContent
.
Quando la registrazione di debug è abilitata, viene visualizzato un avviso che i segreti come password o listKeys
operazioni possono essere registrati e visualizzati quando si usano comandi come Get-AzResourceGroupDeploymentOperation
per ottenere informazioni sulle operazioni di distribuzione.
New-AzResourceGroupDeployment `
-Name exampledeployment `
-ResourceGroupName examplegroup `
-TemplateFile main.bicep `
-DeploymentDebugLogLevel All
L'output della distribuzione mostra il livello di registrazione del debug.
DeploymentDebugLogLevel : RequestContent, ResponseContent
Il DeploymentDebugLogLevel
parametro è disponibile per altri ambiti di distribuzione: sottoscrizione, gruppo di gestione e tenant.
Ottenere informazioni di debug
Dopo aver abilitato la registrazione del debug, è possibile ottenere altre informazioni sulle operazioni di distribuzione. I cmdlet di Azure PowerShell per le operazioni di distribuzione non generano l'output delle request
proprietà eresponse
. È necessario usare l'interfaccia della riga di comando di Azure per ottenere le informazioni da tali proprietà.
Se non si abilita la registrazione di debug dal comando di distribuzione, è comunque possibile ottenere informazioni sulle operazioni di distribuzione. Usare Azure PowerShell o l'interfaccia della riga di comando di Azure per ottenere il codice di stato, il messaggio di stato e lo stato di provisioning.
Per una distribuzione di un gruppo di risorse, usare Get-AzResourceGroupDeploymentOperation per ottenere le operazioni di distribuzione.
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
È possibile specificare una proprietà, ad esempio StatusCode
, StatusMessage
o ProvisioningState
per filtrare l'output.
(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).StatusCode
Per altre informazioni, vedere la documentazione per gli ambiti dell'operazione di distribuzione: sottoscrizione, gruppo di gestione e tenant.
Eseguire il debug del modello annidato
Il modello arm principale e i modelli annidati hanno la propria cronologia di distribuzione e distribuzione. Il file e il modulo Bicep principali usano anche un nome di distribuzione e una cronologia di distribuzione separati.
Modello ARM
Per registrare le informazioni di debug per un modello arm annidato , usare Microsoft.Resources/distribuzioni con la debugSetting
proprietà .
L'esempio seguente mostra un modello annidato con debugSetting
cui registrare la richiesta e la risposta della distribuzione.
"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"
}
}
}
],
Il modello arm principale e i modelli annidati hanno la propria cronologia di distribuzione e distribuzione. Se si desidera che le request
proprietà e response
contengano informazioni sulla risoluzione dei problemi, tenere presente gli scenari di distribuzione seguenti:
- Le
request
proprietà eresponse
contengononull
valori per il modello principale e il modello annidato quandoDeploymentDebugLogLevel
non è abilitato con il comando di distribuzione. - Quando il comando di distribuzione abilita
DeploymentDebugLogLevel
lerequest
proprietà eresponse
contiene informazioni solo per il modello principale. Le proprietà del modello annidate contengononull
valori. - Quando un modello annidato usa e
debugSetting
il comando di distribuzione non includeDeploymentDebugLogLevel
solo la distribuzione del modello annidata ha valori per lerequest
proprietà eresponse
. Le proprietà del modello principale contengononull
valori. - Per ottenere il
request
response
modello principale e il modello annidato, specificareDeploymentDebugLogLevel
nel comando di distribuzione e usaredebugSetting
nel modello annidato.
File Bicep
La raccomandazione per i file Bicep consiste nell'usare i moduli anziché i modelli annidati con Microsoft.Resources/deployments
. Il messaggio di stato, il codice di stato e lo stato di provisioning includono informazioni per il file e il modulo Bicep principale che è possibile usare per risolvere i problemi della distribuzione.
Se si abilita DeploymentDebugLogLevel
dal comando di distribuzione, le request
proprietà e response
contengono informazioni solo per la distribuzione del file Bicep principale.
Rimuovere la cronologia della distribuzione di debug
Al termine del debug, è necessario rimuovere la cronologia di distribuzione per impedire a chiunque abbia accesso di visualizzare informazioni riservate che potrebbero essere state registrate. Per ogni nome di distribuzione usato durante il debug, eseguire il comando per rimuovere la cronologia della distribuzione.
Per rimuovere la cronologia di distribuzione per una distribuzione di un gruppo di risorse, usare Remove-AzResourceGroupDeployment.
Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment
Il comando restituisce True
quando ha esito positivo.
Per altre informazioni sulla cronologia della distribuzione, vedere la documentazione per gli ambiti di distribuzione: sottoscrizione, gruppo di gestione e tenant.