Sdílet prostřednictvím


Povolení protokolování ladění

Pokud chcete vyřešit chybu nasazení, můžete povolit protokolování ladění, abyste získali další informace. Protokolování ladění funguje pro nasazení pomocí souborů Bicep nebo šablon Azure Resource Manager (šablon ARM). Pokud chcete zjistit příčinu problému, můžete získat data o požadavku a odpovědi nasazení.

Upozornění

Protokolování ladění může vystavit tajné kódy, jako jsou hesla nebo listKeys operace. Protokolování ladění povolte pouze v případě, že potřebujete vyřešit chybu nasazení. Po dokončení ladění byste měli odebrat historii nasazení ladění.

Nastavení protokolování ladění

Pomocí Azure PowerShell povolte protokolování ladění, které naplní request vlastnosti a response informacemi o nasazení pro účely řešení potíží. Protokolování ladění není možné povolit pomocí Azure CLI.

Protokolování ladění je povolené jenom pro hlavní šablonu ARM nebo soubor Bicep. Pokud používáte vnořené šablony ARM nebo moduly Bicep, přečtěte si téma Ladění vnořených šablon.

Pro nasazení skupiny prostředků použijte rutinu New-AzResourceGroupDeployment a nastavte DeploymentDebugLogLevel parametr na All, ResponseContentnebo RequestContent.

Když je protokolování ladění povolené, zobrazí se upozornění, že tajné kódy, jako jsou hesla nebo listKeys operace, se dají protokolovat a zobrazit, když použijete příkazy, jako Get-AzResourceGroupDeploymentOperation je získání informací o operacích nasazení.

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

Výstup nasazení zobrazuje úroveň protokolování ladění.

DeploymentDebugLogLevel : RequestContent, ResponseContent

Parametr DeploymentDebugLogLevel je k dispozici pro další obory nasazení: předplatné, skupina pro správu a tenant.

Získání informací o ladění

Po povolení protokolování ladění můžete získat další informace o operacích nasazení. Rutiny Azure PowerShell pro operace nasazení nevytáčí request vlastnosti a response . K získání informací z těchto vlastností musíte použít Azure CLI.

Pokud z příkazu pro nasazení nepovolíte protokolování ladění, můžete přesto získat informace o operacích nasazení. Pomocí Azure PowerShell nebo Azure CLI získejte stavový kód, stavovou zprávu a stav zřizování.

Pro nasazení skupiny prostředků použijte rutinu Get-AzResourceGroupDeploymentOperation k získání operací nasazení.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

K filtrování výstupu můžete zadat vlastnost, například StatusCode, StatusMessagenebo ProvisioningState .

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

Další informace najdete v dokumentaci k rozsahům operací nasazení: předplatné, skupina pro správu a tenant.

Ladění vnořené šablony

Hlavní šablona ARM a vnořené šablony mají vlastní název nasazení a historii nasazení. Hlavní soubor a modul Bicep také používají samostatný název nasazení a historii nasazení.

Šablona ARM

Pokud chcete protokolovat informace o ladění pro vnořenou šablonu ARM, použijte Microsoft.Resources/deployments s debugSetting vlastností .

Následující ukázka ukazuje vnořenou šablonu s objektem debugSetting pro protokolování požadavku a odpovědi nasazení.

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

Hlavní šablona ARM a vnořené šablony mají vlastní název nasazení a historii nasazení. Pokud chcete request , aby vlastnosti a response obsahovaly informace o řešení potíží, mějte na paměti následující scénáře nasazení:

  • Vlastnosti request a response obsahují null hodnoty pro hlavní šablonu a vnořenou šablonu, pokud DeploymentDebugLogLevel není povolená příkazem pro nasazení.
  • Když příkaz pro nasazení povolí DeploymentDebugLogLevelrequest , vlastnosti a response obsahují informace pouze pro hlavní šablonu. Vlastnosti vnořené šablony obsahují null hodnoty.
  • Pokud vnořená šablona používá debugSetting a příkaz nasazení nezahrnuje DeploymentDebugLogLevel pouze vnořené nasazení šablony, obsahuje hodnoty pro request vlastnosti a response . Vlastnosti hlavní šablony obsahují null hodnoty.
  • Pokud chcete získat request a response pro hlavní šablonu a vnořenou šablonu, zadejte DeploymentDebugLogLevel v příkazu nasazení a ve vnořené šabloně použijte debugSetting příkaz .

Soubor Bicep

Pro soubory Bicep se doporučuje používat moduly , nikoli vnořené šablony s Microsoft.Resources/deployments. Stavová zpráva, stavový kód a stav zřizování budou obsahovat informace o hlavním souboru a modulu Bicep, které můžete použít k řešení potíží s nasazením.

Pokud ho povolíte DeploymentDebugLogLevel pomocí příkazu pro nasazení, request vlastnosti a response budou obsahovat informace pouze pro nasazení hlavního souboru Bicep.

Odebrání historie nasazení ladění

Po dokončení ladění byste měli odebrat historii nasazení, aby nikdo, kdo má přístup, neviděl citlivé informace, které by mohly být protokolované. Pro každý název nasazení, který jste použili při ladění, spuštěním příkazu odeberte historii nasazení.

Pokud chcete odebrat historii nasazení pro nasazení skupiny prostředků, použijte rutinu Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Příkaz vrátí True , jakmile bude úspěšný.

Další informace o historii nasazení najdete v dokumentaci k oborům nasazení: předplatné, skupina pro správu a tenant.

Další kroky