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, ResponseContentou 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, StatusMessageou 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 e response contêm null valores para o modelo principal e o modelo aninhado quando DeploymentDebugLogLevel não está ativado com o comando de implementação.
  • Quando o comando de implementação ativa as request propriedades DeploymentDebugLogLevel e response contêm apenas informações para o modelo principal. As propriedades do modelo aninhado contêm null valores.
  • Quando um modelo aninhado utiliza o debugSetting e o comando de implementação não inclui DeploymentDebugLogLevel apenas a implementação de modelo aninhado tem valores para as request propriedades e response . As propriedades do modelo principal contêm null valores.
  • Para obter o request e response para o modelo principal e o modelo aninhado, especifique DeploymentDebugLogLevel no comando de implementação e utilize debugSetting 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.

Passos seguintes