Share via


Habilitación del registro de depuración

Para solucionar un error de implementación, puede habilitar el registro de depuración. Esto le permitirá obtener más información sobre el problema. El proceso de registro de depuración funciona para implementaciones con archivos Bicep o plantillas de Azure Resource Manager (plantillas de ARM). Si lo usa, podrá obtener datos sobre la solicitud y la respuesta de una implementación, que le será de ayuda para descubrir la causa de un problema.

Advertencia

El registro de depuración puede exponer secretos como contraseñas u operaciones listKeys. Solo habilite el registro de depuración cuando necesite solucionar un error de implementación. Cuando haya terminado de depurar, debe eliminar el historial de implementación de depuración.

Configuración del registro de depuración

Use Azure PowerShell para habilitar el registro de depuración que rellena las propiedades request y response con información de implementación para solucionar problemas. El registro de depuración no se puede habilitar mediante la CLI de Azure.

El registro de depuración solo está habilitado para la plantilla de ARM o archivo de Bicep principales. Si usa plantillas de ARM anidadas o módulos de Bicep, consulte Depuración de plantillas anidadas.

Para llevar a cabo una implementación de grupo de recursos, use el comando New-AzResourceGroupDeployment y establezca el valor del parámetro DeploymentDebugLogLevel en All, ResponseContent o RequestContent.

Cuando se habilita el registro de depuración, se muestra una advertencia que indica que los secretos como contraseñas u operaciones listKeys se pueden registrar o mostrar cuando use comandos como Get-AzResourceGroupDeploymentOperation para obtener información sobre las operaciones de implementación.

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

La salida de la implementación mostrará el nivel de registro de depuración.

DeploymentDebugLogLevel : RequestContent, ResponseContent

El parámetro DeploymentDebugLogLevel también está disponible para los siguientes ámbitos de implementación: suscripción, grupo de administración e inquilino.

Obtención de información de depuración

Una vez que haya habilitado el registro de depuración, podrá obtener más información sobre las operaciones de implementación. Los cmdlets de Azure PowerShell para las operaciones de implementación no generan las propiedades request y response. Debe usar la CLI de Azure para obtener la información de esas propiedades.

Aunque no habilite el registro de depuración desde el comando de implementación, podrá obtener información sobre las operaciones de implementación. Use Azure PowerShell o la CLI de Azure para obtener el código de estado, el mensaje de estado y el estado de aprovisionamiento.

Para llevar a cabo una implementación de grupo de recursos, ejecute el comando Get-AzResourceGroupDeploymentOperation. De esta forma, obtendrá las operaciones de implementación.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Puede especificar una propiedad, como StatusCode, StatusMessage o ProvisioningState para filtrar la salida.

(Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup).StatusCode

Para obtener más información, consulte la documentación que se incluye a continuación sobre los siguientes ámbitos de operaciones de implementación: suscripción, grupo de administración e inquilino.

Depuración de una plantilla anidada

La plantilla principal de ARM y las plantillas anidadas tienen su propio nombre e historial de implementación. El archivo y el módulo principales de Bicep también usan un nombre y un historial de implementación independientes.

Plantilla ARM

Para registrar la información de depuración de una implementación mediante una plantilla de ARM anidada, use Microsoft.Resources/deployments con la propiedad debugSetting.

En el ejemplo siguiente se muestra una plantilla anidada con debugSetting para registrar la solicitud y la respuesta de la implementación.

"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"
      }
    }
  }
],

La plantilla principal de ARM y las plantillas anidadas tienen su propio nombre e historial de implementación. Si desea que las propiedades request y response contengan información de solución de problemas, tenga en cuenta los siguientes escenarios de implementación:

  • Las propiedades request y response contienen valores null para la plantilla principal y la plantilla anidada cuando DeploymentDebugLogLevel no está habilitado con el comando de implementación.
  • Cuando el comando de implementación habilita DeploymentDebugLogLevel las propiedades request y response contienen información solo para la plantilla principal. Las propiedades de la plantilla anidada contienen valores null.
  • Cuando una plantilla anidada usa debugSetting y el comando de implementación no incluye DeploymentDebugLogLevel solo la implementación de la plantilla anidada tiene valores para las propiedades request y response. Las propiedades de la plantilla principal contienen valores null.
  • Para obtener request y response para la plantilla principal y la plantilla anidada, especifique DeploymentDebugLogLevel en el comando de implementación y use debugSetting en la plantilla anidada.

Archivo Bicep

La recomendación para los archivos de Bicep es usar módulos en lugar de plantillas anidadas con Microsoft.Resources/deployments. El mensaje de estado, el código de estado y el estado de aprovisionamiento incluirán información para el archivo y el módulo principal de Bicep que puede usar para solucionar problemas de la implementación.

Si habilita DeploymentDebugLogLevel desde el comando de implementación, las propiedades request y response solo contendrán información para la implementación del archivo de Bicep principal.

Eliminación del historial de implementación de depuración

Cuando ya haya terminado un proceso de depuración, debe quitar el historial de implementación para evitar que cualquier persona que tenga acceso vea la información confidencial que podría haberse registrado durante el proceso. Para cada nombre de implementación que usó durante la depuración, ejecute el comando para quitar el historial de implementación.

Para quitar el historial de implementación de una implementación de grupo de recursos, ejecute el comando Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

El comando devolverá el valor True cuando se ejecute correctamente.

Para obtener más información sobre el historial de implementación, consulte la documentación que se incluye a continuación sobre los siguientes ámbitos de implementación: suscripción, grupo de administración e inquilino.

Pasos siguientes