Compartir a través de


Habilitar el 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). Puede obtener datos sobre la solicitud y la respuesta de una implementación para obtener información sobre 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

Utilice 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 implementar un grupo de recursos, use New-AzResourceGroupDeployment y establezca el parámetro DeploymentDebugLogLevel, 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 DeploymentDebugLogLevel parámetro está disponible para otros á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, StatusMessageo ProvisioningState para filtrar la salida.

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

Para obtener más información, consulte la documentación sobre ámbitos de operación de implementación: suscripción, grupo de administración e inquilino.

Depurar plantilla anidada

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

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 de implementación e historial de implementación. Si desea que las request propiedades 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 request propiedades y response solo contienen información 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 plantilla anidada tiene valores para las request propiedades y response . Las propiedades de la plantilla principal incorporan valores de null.
  • Para obtener request y response para la plantilla principal y la plantilla anidada, especifiquen DeploymentDebugLogLevel en el comando de implementación y utilicen 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 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, use Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

El comando devuelve True cuando se realiza correctamente.

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

Pasos siguientes