Udostępnij za pomocą


Włącz logowanie debugowania

Aby rozwiązać problem z błędem wdrażania, możesz włączyć rejestrowanie debugowania, aby uzyskać więcej informacji. Rejestrowanie debugowania działa w przypadku wdrożeń za pomocą plików Bicep lub szablonów Azure Resource Manager (ARM). Możesz uzyskać dane dotyczące żądania i odpowiedzi wdrożenia, aby zrozumieć przyczynę problemu.

Ostrzeżenie

Rejestrowanie debugowania może uwidaczniać wpisy tajne, takie jak hasła lub listKeys operacje. Włącz rejestrowanie debugowania tylko wtedy, gdy musisz rozwiązać problem z błędem wdrożenia. Po zakończeniu debugowania należy usunąć historię wdrażania debug.

Skonfiguruj logowanie debugowania

Użyj modułu Azure PowerShell, aby włączyć rejestrowanie debugowania, które wypełnia właściwości request i response informacjami o wdrożeniu na potrzeby rozwiązywania problemów. Nie można włączyć rejestrowania debugowania przy użyciu interfejsu wiersza polecenia platformy Azure.

Logowanie debugowania jest włączone tylko dla głównego szablonu ARM lub pliku Bicep. Jeśli używasz zagnieżdżonych szablonów usługi ARM lub modułów Bicep, zobacz Debuguj zagnieżdżony szablon.

W przypadku wdrożenia grupy zasobów użyj polecenia New-AzResourceGroupDeployment i ustaw DeploymentDebugLogLevel parametr na All, ResponseContentlub RequestContent.

Po włączeniu rejestrowania debugowania zostanie wyświetlone ostrzeżenie, że wpisy tajne, takie jak hasła lub listKeys operacje, mogą być rejestrowane i wyświetlane podczas używania poleceń, takich jak Get-AzResourceGroupDeploymentOperation uzyskiwanie informacji o operacjach wdrażania.

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

Dane wyjściowe wdrożenia pokazują poziom rejestrowania debugowania.

DeploymentDebugLogLevel : RequestContent, ResponseContent

Parametr DeploymentDebugLogLevel jest dostępny dla innych zakresów wdrażania: subskrypcji, grupy zarządzania i dzierżawy.

Uzyskiwanie informacji o debugowaniu

Po włączeniu rejestrowania debugowania można uzyskać więcej informacji na temat operacji wdrażania. Polecenia cmdlet programu Azure PowerShell dla operacji wdrażania nie wyświetlają właściwości request i response. Aby uzyskać informacje z tych właściwości, musisz użyć interfejsu wiersza polecenia platformy Azure.

Jeśli nie włączysz rejestrowania debugowania z polecenia wdrożenia, nadal możesz uzyskać informacje o operacjach wdrażania. Użyj programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure, aby uzyskać kod stanu, komunikat o stanie i stan aprowizacji.

W przypadku wdrożenia grupy zasobów użyj polecenia Get-AzResourceGroupDeploymentOperation, aby uzyskać informacje o operacjach wdrożeniowych.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Możesz określić właściwość, na przykład StatusCode, StatusMessagelub ProvisioningState , aby filtrować dane wyjściowe.

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

Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą zakresów operacji wdrażania: subskrypcji, grupy zarządzania i dzierżawy.

Debugowanie szablonu zagnieżdżonego

Główny szablon ARM i szablony zagnieżdżone mają własną nazwę wdrożenia i historię wdrożeń. Główny plik i moduł Bicep używają również oddzielnej nazwy wdrożenia i historii wdrożenia.

Szablon ARM

Aby rejestrować informacje debugowania dla zagnieżdżonego szablonu ARM, użyj Microsoft.Resources/deployments wraz z właściwością debugSetting.

W poniższym przykładzie pokazano zagnieżdżony szablon z elementem debugSetting , aby zarejestrować żądanie i odpowiedź wdrożenia.

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

Główny szablon ARM i szablony zagnieżdżone mają własną nazwę wdrożenia i historię wdrożeń. Jeśli chcesz, aby właściwości request i response zawierały informacje dotyczące rozwiązywania problemów, pamiętaj o następujących scenariuszach wdrażania:

  • Właściwości request i response zawierają null wartości dla głównego szablonu i szablonu zagnieżdżonego, gdy DeploymentDebugLogLevel nie jest włączone za pomocą polecenia wdrożenia.
  • Gdy polecenie wdrożenia włącza DeploymentDebugLogLevelrequest właściwości i response zawiera tylko informacje dla głównego szablonu. Właściwości szablonu zagnieżdżonego mają wartości null.
  • Gdy zagnieżdżony szablon używa debugSetting, a polecenie wdrożenia nie zawiera DeploymentDebugLogLevel, tylko wdrożenie zagnieżdżonego szablonu ma wartości dla właściwości request i response. Właściwości głównego szablonu zawierają wartości null.
  • Aby uzyskać request i response dla szablonu głównego i szablonu zagnieżdżonego, określ DeploymentDebugLogLevel w poleceniu wdrożenia i użyj debugSetting w szablonie zagnieżdżonym.

Plik Bicep

Zaleceniem dla plików Bicep jest używanie modułów, a nie zagnieżdżonych szablonów z użyciem Microsoft.Resources/deployments. Komunikat o stanie, kod stanu i stan aprowizacji będą zawierać informacje dotyczące głównego pliku Bicep i modułu, którego można użyć do rozwiązywania problemów z wdrożeniem.

Jeśli włączysz DeploymentDebugLogLevel z polecenia wdrożenia, właściwości request i response będą zawierać informacje tylko dla wdrożenia głównego pliku Bicep.

Usuń historię wdrożeń debugowania

Po zakończeniu debugowania należy usunąć historię wdrażania, aby uniemożliwić każdemu, kto ma dostęp do wyświetlania poufnych informacji, które mogły zostać zarejestrowane. Dla każdej nazwy wdrożenia użytej podczas debugowania uruchom polecenie , aby usunąć historię wdrażania.

Aby usunąć historię wdrożeń dla grupy zasobów, użyj polecenia Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Polecenie zwraca True po pomyślnym wykonaniu.

Aby uzyskać więcej informacji na temat historii wdrażania, zapoznaj się z dokumentacją zakresów wdrażania: subskrypcji, grupy zarządzania i dzierżawy.

Dalsze kroki