Ativar o registo de depuração
Para resolver um erro de implementação, pode ativar o registo de depuração para obter mais informações. O registo de depuração funciona para implementações com ficheiros Bicep ou modelos de Resource Manager do Azure (modelos arm). Pode obter dados sobre o pedido e a resposta de uma implementação para saber a causa de um problema.
Aviso
O registo de depuração pode expor segredos como palavras-passe ou listKeys
operações. Ative apenas o registo de depuração quando precisar de resolver um erro de implementação. Quando terminar a depuração, deve remover o histórico de implementações de depuração.
Configurar o registo de depuração
Utilize Azure PowerShell para ativar o registo de depuração que preenche as request
propriedades e response
com informações de implementação para resolução de problemas. O registo de depuração não pode ser ativado com a CLI do Azure.
O registo de depuração só está ativado para o modelo arm principal ou ficheiro Bicep. Se estiver a utilizar modelos aninhados do ARM ou módulos bicep, veja Depurar modelo aninhado.
Para uma implementação de grupo de recursos, utilize New-AzResourceGroupDeployment e defina o DeploymentDebugLogLevel
parâmetro como All
, ResponseContent
ou RequestContent
.
Quando o registo de depuração está ativado, é apresentado um aviso a indicar que segredos como palavras-passe ou listKeys
operações podem ser registados e apresentados quando utiliza comandos como Get-AzResourceGroupDeploymentOperation
para obter informações sobre operações de implementação.
New-AzResourceGroupDeployment `
-Name exampledeployment `
-ResourceGroupName examplegroup `
-TemplateFile main.bicep `
-DeploymentDebugLogLevel All
A saída da implementação mostra o nível de registo de depuração.
DeploymentDebugLogLevel : RequestContent, ResponseContent
O DeploymentDebugLogLevel
parâmetro está disponível para outros âmbitos de implementação: subscrição, grupo de gestão e inquilino.
Obter informações de depuração
Depois de ativar o registo de depuração, pode obter mais informações sobre as operações de implementação. Os cmdlets Azure PowerShell para operações de implementação não produzem as request
propriedades e response
. Tem de utilizar a CLI do Azure para obter as informações dessas propriedades.
Se não ativar o registo de depuração a partir do comando de implementação, ainda pode obter informações sobre operações de implementação. Utilize Azure PowerShell ou a CLI do Azure para obter o código de estado, a mensagem de estado e o estado de aprovisionamento.
Para uma implementação de grupo de recursos, utilize Get-AzResourceGroupDeploymentOperation para obter operações de implementação.
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
Pode especificar uma propriedade, como StatusCode
, StatusMessage
ou ProvisioningState
para filtrar a saída.
(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).StatusCode
Para obter mais informações, veja a documentação para âmbitos de operação de implementação: subscrição, grupo de gestão e inquilino.
Depurar modelo aninhado
O modelo arm principal e os modelos aninhados têm o seu próprio nome de implementação e histórico de implementações. O ficheiro e módulo bicep principal também utilizam um nome de implementação e um histórico de implementação separados.
Modelo ARM
Para registar informações de depuração de um modelo aninhado do ARM, utilize Microsoft.Resources/deployments com a debugSetting
propriedade .
O exemplo seguinte mostra um modelo aninhado com o debugSetting
para registar o pedido e a resposta da implementação.
"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"
}
}
}
],
O modelo arm principal e os modelos aninhados têm o seu próprio nome de implementação e histórico de implementações. Se quiser que as request
propriedades e response
contenham informações de resolução de problemas, tenha em atenção os seguintes cenários de implementação:
- As
request
propriedades eresponse
contêmnull
valores para o modelo principal e o modelo aninhado quandoDeploymentDebugLogLevel
não está ativado com o comando de implementação. - Quando o comando de implementação ativa as
request
propriedadesDeploymentDebugLogLevel
eresponse
contêm apenas informações para o modelo principal. As propriedades do modelo aninhado contêmnull
valores. - Quando um modelo aninhado utiliza o
debugSetting
e o comando de implementação não incluiDeploymentDebugLogLevel
apenas a implementação de modelo aninhado tem valores para asrequest
propriedades eresponse
. As propriedades do modelo principal contêmnull
valores. - Para obter o
request
eresponse
para o modelo principal e o modelo aninhado, especifiqueDeploymentDebugLogLevel
no comando de implementação e utilizedebugSetting
no modelo aninhado.
Ficheiro bicep
A recomendação para ficheiros Bicep é utilizar módulos em vez de modelos aninhados com Microsoft.Resources/deployments
. A mensagem de estado, o código de estado e o estado de aprovisionamento incluirão informações para o ficheiro e módulo bicep principal que pode utilizar para resolver problemas de implementação.
Se ativar DeploymentDebugLogLevel
a partir do comando de implementação, as request
propriedades e response
irão conter apenas informações para a implementação do ficheiro Bicep principal.
Remover histórico de implementações de depuração
Quando terminar a depuração, deve remover o histórico de implementações para impedir que qualquer pessoa que tenha acesso veja informações confidenciais que possam ter sido registadas. Para cada nome de implementação que utilizou durante a depuração, execute o comando para remover o histórico de implementações.
Para remover o histórico de implementações de uma implementação de grupo de recursos, utilize Remove-AzResourceGroupDeployment.
Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment
O comando devolve True
quando é bem-sucedido.
Para obter mais informações sobre o histórico de implementações, veja a documentação dos âmbitos de implementação: subscrição, grupo de gestão e inquilino.