Compartilhar via


Habilitar o log de depuração

Para solucionar um erro de implantação, você pode habilitar o log de depuração para obter mais informações. O log de depuração funciona para implantações com arquivos Bicep ou modelos do ARM (modelos do Azure Resource Manager). Você pode obter dados sobre a solicitação e a resposta de uma implantação para saber a causa de um problema.

Aviso

O log de depuração pode expor segredos como senhas ou listKeys operações. Habilite o log de depuração somente quando precisar solucionar um erro de implantação. Quando terminar de depurar, você deverá remover o histórico de implantação de depuração.

Configurar o log de depuração

Use o Azure PowerShell para habilitar o log de depuração que preenche as request propriedades e response com informações de implantação para solução de problemas. O log de depuração não pode ser habilitado usando a CLI do Azure.

O log de depuração só está habilitado para o modelo principal do ARM ou arquivo Bicep. Se você estiver usando modelos do ARM aninhados ou módulos Bicep, consulte Depurar modelo aninhado.

Para uma implantação de grupo de recursos, use New-AzResourceGroupDeployment e defina o DeploymentDebugLogLevel parâmetro como All, ResponseContent, ou RequestContent.

Quando o log de depuração está habilitado, é exibido um aviso de que segredos como senhas ou listKeys operações podem ser registrados e exibidos quando você usa comandos como Get-AzResourceGroupDeploymentOperation para obter informações sobre operações de implantação.

New-AzResourceGroupDeployment `
  -Name exampledeployment `
  -ResourceGroupName examplegroup `
  -TemplateFile main.bicep `
  -DeploymentDebugLogLevel All

A saída da implantação mostra o nível de log de depuração.

DeploymentDebugLogLevel : RequestContent, ResponseContent

O DeploymentDebugLogLevel parâmetro está disponível para outros escopos de implantação: assinatura, grupo de gerenciamento e locatário.

Obter informações de depuração

Depois que o log de depuração estiver habilitado, você poderá obter mais informações sobre as operações de implantação. Os cmdlets do Azure PowerShell para operações de implantação não geram as request propriedades and response . Você precisa usar a CLI do Azure para obter as informações dessas propriedades.

Se você não habilitar o log de depuração do comando de implantação, ainda poderá obter informações de operações de implantação. Use o Azure PowerShell ou a CLI do Azure para obter o código de status, a mensagem de status e o estado de provisionamento.

Para uma implantação de grupo de recursos, use Get-AzResourceGroupDeploymentOperation para obter operações de implantação.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Você 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, consulte a documentação dos escopos de operação de implantação: assinatura, grupo de gerenciamento e locatário.

Depurar modelo aninhado

O modelo principal do ARM e os modelos aninhados têm seu próprio nome de implantação e histórico de implantação. O arquivo e o módulo Bicep principais também usam um nome de implantação e um histórico de implantação separados.

Modelo de ARM

Para registrar informações de depuração para um modelo do ARM aninhado , use Microsoft.Resources/deployments com a debugSetting propriedade.

O exemplo a seguir mostra um modelo aninhado com o debugSetting para registrar a solicitação e a resposta da implantaçã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 principal do ARM e os modelos aninhados têm seu próprio nome de implantação e histórico de implantação. Se você quiser que as request propriedades and response contenham informações de solução de problemas, esteja ciente dos seguintes cenários de implantação:

  • As request propriedades and response contêm null valores para o modelo principal e o modelo aninhado quando DeploymentDebugLogLevel não estão habilitados com o comando de implantação.
  • Quando o comando de implantação habilita DeploymentDebugLogLevel as request propriedades e response contêm informações somente para o modelo principal. As propriedades do modelo aninhado contêm null valores.
  • Quando um modelo aninhado usa o debugSetting comando e a implantação não inclui DeploymentDebugLogLevel apenas o modelo aninhado, a implantação 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 implantação e use debugSetting no modelo aninhado.

Arquivo Bicep

A recomendação para arquivos Bicep é usar módulos em vez de modelos aninhados com Microsoft.Resources/deployments. A mensagem de status, o código de status e o estado de provisionamento incluirão informações para o arquivo Bicep principal e o módulo que você pode usar para solucionar problemas de implantação.

Se você habilitar DeploymentDebugLogLevel a partir do comando de implantação, as request propriedades e response conterão informações apenas para a implantação do arquivo Bicep principal.

Remover histórico de implantação de depuração

Quando terminar de depurar, você deve remover o histórico de implantação para impedir que qualquer pessoa que tenha acesso veja informações confidenciais que podem ter sido registradas. Para cada nome de implantação usado durante a depuração, execute o comando para remover o histórico de implantação.

Para remover o histórico de implantação de uma implantação de grupo de recursos, use Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

O comando retorna True quando é bem-sucedido.

Para obter mais informações sobre o histórico de implantação, consulte a documentação dos escopos de implantação: assinatura, grupo de gerenciamento e locatário.

Próximas etapas