Dela via


Aktivera loggning för felsökning

Om du vill felsöka ett distributionsfel kan du aktivera felsökningsloggning för att få mer information. Felsökningsloggning fungerar för distributioner med Bicep-filer eller Azure Resource Manager-mallar (ARM-mallar). Du kan hämta data om en distributions begäran och svar för att lära dig orsaken till ett problem.

Varning

Felsökningsloggning kan exponera känslig information som lösenord eller listKeys åtgärder. Aktivera endast felsökningsloggning när du behöver felsöka ett distributionsfel. När du är klar med felsökningen bör du ta bort historiken för felsökningsdistributionen.

Konfigurera felsökningsloggning

Använd Azure PowerShell för att möjliggöra felsökningsloggning som fyller egenskaperna request och response med distributionsinformation för felsökning. Felsökningsloggning kan inte aktiveras med Azure CLI.

Felsökningsloggning är endast aktiverad för huvud-ARM-mallen eller Bicep-filen. Om du använder kapslade ARM-mallar eller Bicep-moduler kan du läsa Felsök kapslad mall.

För en resursgruppsdistribution använder du New-AzResourceGroupDeployment och anger parametern DeploymentDebugLogLevel till All, ResponseContenteller RequestContent.

När felsökningsloggning är aktiverat visas en varning om att hemligheter som lösenord eller listKeys åtgärder kan loggas och visas när du använder kommandon som Get-AzResourceGroupDeploymentOperation för att hämta information om distributionsåtgärder.

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

Distributionens utdata visar loggningsnivån för felsökning.

DeploymentDebugLogLevel : RequestContent, ResponseContent

Parametern DeploymentDebugLogLevel är tillgänglig för andra distributionsomfång: prenumeration, hanteringsgrupp och klientorganisation.

Hämta felsökningsinformation

När felsökningsloggning har aktiverats kan du få mer information om distributionsåtgärderna. Azure PowerShell-cmdlets för distributionsoperationer skriver inte ut egenskaperna request och response. Du måste använda Azure CLI för att hämta informationen från dessa egenskaper.

Om du inte aktiverar felsökningsloggning från distributionskommandot kan du fortfarande hämta information om distributionsåtgärder. Använd Azure PowerShell eller Azure CLI för att hämta statuskoden, statusmeddelandet och etableringstillståndet.

För en resursgruppsdistribution använder du Get-AzResourceGroupDeploymentOperation för att hämta distributionsåtgärder.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Du kan ange en egenskap, till exempel StatusCode, StatusMessageeller ProvisioningState för att filtrera utdata.

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

Mer information finns i dokumentationen för distributionsåtgärdsomfång: prenumeration, hanteringsgrupp och klientorganisation.

Felsök kapslad mall

ARM-huvudmallen och kapslade mallar har både sitt eget distributionsnamn och distributionshistorik. Huvudfilen och modulen för Bicep använder också ett separat distributionsnamn och distributionshistorik.

ARM-mall

Om du vill logga felsökningsinformation för en kapslad ARM-mall använder du Microsoft.Resources/deployments med egenskapen debugSetting .

Följande exempel visar en kapslad mall med debugSetting för att logga distributionens begäran och svar.

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

ARM-huvudmallen och kapslade mallar har både sitt eget distributionsnamn och distributionshistorik. Om du vill att egenskaperna request och response ska innehålla felsökningsinformation bör du vara medveten om följande distributionsscenarier:

  • Egenskaperna request och response innehåller null värden för huvudmallen och den kapslade mallen när DeploymentDebugLogLevel den inte är aktiverad med distributionskommandot.
  • När distributionskommandot aktiverar DeploymentDebugLogLevel innehåller egenskaperna request och response information endast för huvudmallen. Egenskaperna för den kapslade mallen innehåller null värden.
  • När en kapslad mall använder debugSetting och distributionskommandot inte inkluderar DeploymentDebugLogLevel har endast den kapslade malldistributionen värden för egenskaperna request och response. Huvudmallens egenskaper innehåller null värden.
  • Om du vill hämta request och response för huvudmallen och den kapslade mallen anger du DeploymentDebugLogLevel i distributionskommandot och använder debugSetting i den kapslade mallen.

Bicep-fil

Rekommendationen för Bicep-filer är att använda moduler i stället för kapslade mallar med Microsoft.Resources/deployments. Statusmeddelandet, statuskoden och driftsättningstillståndet innehåller information om den primära Bicep-filen och modulen som du kan använda för att felsöka distributionen.

Om du aktiverar DeploymentDebugLogLevel från distributionskommandot, kommer egenskaperna request och response endast att innehålla information för distributionen av huvudfilen av Bicep.

Ta bort historik för felsökningsdistribution

När du är klar med felsökningen bör du ta bort distributionshistoriken för att förhindra att alla som har åtkomst ser känslig information som kan ha loggats. Kör kommandot för att ta bort distributionshistoriken för varje distributionsnamn som du använde under felsökningen.

Om du vill ta bort distributionshistoriken för en resursgruppsdistribution använder du Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Kommandot returnerar True när det lyckas.

Mer information om distributionshistorik finns i dokumentationen för distributionsomfången: prenumeration, hanteringsgrupp och klientorganisation.

Nästa steg