Delen via


Logboekregistratie voor foutopsporing inschakelen

Als u een implementatiefout wilt oplossen, kunt u logboekregistratie voor foutopsporing inschakelen voor meer informatie. Logboekregistratie voor foutopsporing werkt voor implementaties met Bicep-bestanden of Azure Resource Manager-sjablonen (ARM-sjablonen). U kunt gegevens ophalen over de aanvraag en reactie van een implementatie om de oorzaak van een probleem te achterhalen.

Waarschuwing

Logboekregistratie van foutopsporing kan geheimen zoals wachtwoorden of listKeys bewerkingen beschikbaar maken. Schakel logboekregistratie voor foutopsporing alleen in wanneer u een implementatiefout moet oplossen. Wanneer u klaar bent met foutopsporing, moet u de implementatiegeschiedenis voor foutopsporing verwijderen.

Logboekregistratie voor foutopsporing instellen

Gebruik Azure PowerShell om logboekregistratie voor foutopsporing in te schakelen waarmee de request eigenschappen en response worden gevuld met implementatiegegevens voor probleemoplossing. Logboekregistratie voor foutopsporing kan niet worden ingeschakeld met behulp van Azure CLI.

Logboekregistratie voor foutopsporing is alleen ingeschakeld voor de hoofd-ARM-sjabloon of het Bicep-bestand. Als u geneste ARM-sjablonen of Bicep-modules gebruikt, raadpleegt u Fouten opsporen in geneste sjabloon.

Voor de implementatie van een resourcegroep gebruikt u New-AzResourceGroupDeployment en stelt u de DeploymentDebugLogLevel parameter in op All, ResponseContentof RequestContent.

Wanneer logboekregistratie voor foutopsporing is ingeschakeld, wordt een waarschuwing weergegeven dat geheimen, zoals wachtwoorden of listKeys bewerkingen, kunnen worden geregistreerd en weergegeven wanneer u opdrachten zoals Get-AzResourceGroupDeploymentOperation gebruikt om informatie over implementatiebewerkingen op te halen.

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

De uitvoer van de implementatie toont het niveau van de foutopsporingslogboekregistratie.

DeploymentDebugLogLevel : RequestContent, ResponseContent

De DeploymentDebugLogLevel parameter is beschikbaar voor andere implementatiebereiken: abonnement, beheergroep en tenant.

Foutopsporingsgegevens ophalen

Nadat logboekregistratie voor foutopsporing is ingeschakeld, kunt u meer informatie krijgen over de implementatiebewerkingen. De Azure PowerShell cmdlets voor implementatiebewerkingen voeren de request eigenschappen en response niet uit. U moet Azure CLI gebruiken om de informatie uit deze eigenschappen op te halen.

Als u logboekregistratie voor foutopsporing niet inschakelt vanuit de implementatieopdracht, kunt u nog steeds informatie over implementatiebewerkingen ophalen. Gebruik Azure PowerShell of Azure CLI om de statuscode, het statusbericht en de inrichtingsstatus op te halen.

Voor een resourcegroepimplementatie gebruikt u Get-AzResourceGroupDeploymentOperation om implementatiebewerkingen op te halen.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

U kunt een eigenschap opgeven, zoals StatusCode, StatusMessageof ProvisioningState om de uitvoer te filteren.

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

Zie de documentatie voor implementatiebewerkingsbereiken: abonnement, beheergroep en tenant voor meer informatie.

Fouten opsporen in geneste sjabloon

De hoofd-ARM-sjabloon en geneste sjablonen hebben hun eigen implementatienaam en implementatiegeschiedenis. Het bicep-hoofdbestand en de module gebruiken ook een afzonderlijke implementatienaam en implementatiegeschiedenis.

ARM-sjabloon

Als u foutopsporingsgegevens voor een geneste ARM-sjabloon wilt vastleggen, gebruikt u microsoft.resources/deployments met de debugSetting eigenschap .

In het volgende voorbeeld ziet u een geneste sjabloon met de debugSetting om de aanvraag en het antwoord van de implementatie te registreren.

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

De hoofd-ARM-sjabloon en geneste sjablonen hebben hun eigen implementatienaam en implementatiegeschiedenis. Als u wilt dat de request eigenschappen en response informatie over probleemoplossing bevatten, moet u rekening houden met de volgende implementatiescenario's:

  • De request eigenschappen en response bevatten null waarden voor de hoofdsjabloon en geneste sjabloon wanneer DeploymentDebugLogLevel deze niet is ingeschakeld met de implementatieopdracht.
  • Wanneer met de implementatieopdracht de request eigenschappen en response worden ingeschakeldDeploymentDebugLogLevel, bevatten deze alleen informatie voor de hoofdsjabloon. De eigenschappen van de geneste sjabloon bevatten null waarden.
  • Wanneer een geneste sjabloon de debugSetting en gebruikt, bevat DeploymentDebugLogLevel de implementatieopdracht niet alleen de geneste sjabloonimplementatie waarden voor de request eigenschappen en response . De eigenschappen van de hoofdsjabloon bevatten null waarden.
  • Als u de request en response wilt ophalen voor de hoofdsjabloon en geneste sjabloon, geeft u DeploymentDebugLogLevel op in de implementatieopdracht en gebruikt debugSetting u in de geneste sjabloon.

Bicep-bestand

De aanbeveling voor Bicep-bestanden is om modules te gebruiken in plaats van geneste sjablonen met Microsoft.Resources/deployments. Het statusbericht, de statuscode en de inrichtingsstatus bevatten informatie voor het hoofd-Bicep-bestand en de module die u kunt gebruiken om problemen met de implementatie op te lossen.

Als u dit inschakelt DeploymentDebugLogLevel vanuit de implementatieopdracht, bevatten de request eigenschappen en response alleen informatie voor de implementatie van het Bicep-hoofdbestand.

Implementatiegeschiedenis voor foutopsporing verwijderen

Wanneer u klaar bent met foutopsporing, moet u de implementatiegeschiedenis verwijderen om te voorkomen dat iedereen die toegang heeft, gevoelige informatie ziet die mogelijk is geregistreerd. Voer voor elke implementatienaam die u tijdens het opsporen van fouten hebt gebruikt, de opdracht uit om de implementatiegeschiedenis te verwijderen.

Als u de implementatiegeschiedenis voor een resourcegroepimplementatie wilt verwijderen, gebruikt u Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

De opdracht wordt geretourneerd True wanneer deze is geslaagd.

Zie de documentatie voor de implementatiebereiken: abonnement, beheergroep en tenant voor meer informatie over de implementatiegeschiedenis.

Volgende stappen