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
yresponse
contienen valoresnull
para la plantilla principal y la plantilla anidada cuandoDeploymentDebugLogLevel
no está habilitado con el comando de implementación. - Cuando el comando de implementación habilita
DeploymentDebugLogLevel
las propiedadesrequest
yresponse
contienen información solo para la plantilla principal. Las propiedades de la plantilla anidada contienen valoresnull
. - Cuando una plantilla anidada usa
debugSetting
y el comando de implementación no incluyeDeploymentDebugLogLevel
solo la implementación de la plantilla anidada tiene valores para las propiedadesrequest
yresponse
. Las propiedades de la plantilla principal contienen valoresnull
. - Para obtener
request
yresponse
para la plantilla principal y la plantilla anidada, especifiqueDeploymentDebugLogLevel
en el comando de implementación y usedebugSetting
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.