Włączanie rejestrowania 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ń z plikami Bicep lub szablonami usługi Azure Resource Manager (szablony usługi ARM). Możesz uzyskać dane dotyczące żądania i odpowiedzi wdrożenia, aby poznać 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ę wdrożenia debugowania.

Konfigurowanie rejestrowania debugowania

Użyj Azure PowerShell, aby włączyć rejestrowanie debugowania, które wypełnia request właściwości 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.

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

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 wyświetlane jest 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 wdrożenia: subskrypcji, grupy zarządzania i dzierżawy.

Pobieranie informacji o debugowaniu

Po włączeniu rejestrowania debugowania można uzyskać więcej informacji na temat operacji wdrażania. Polecenia cmdlet Azure PowerShell dla operacji wdrażania nie generują request właściwości 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 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ć operacje wdrażania.

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ę zakresów operacji wdrażania: subskrypcja, grupa zarządzania i dzierżawa.

Debugowanie szablonu zagnieżdżonego

Główny szablon usługi ARM i szablony zagnieżdżone mają własną nazwę wdrożenia i historię wdrażania. 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 usługi ARM, użyj właściwości Microsoft.Resources/deploymentsdebugSetting.

Poniższy przykład przedstawia 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 usługi ARM i szablony zagnieżdżone mają własną nazwę wdrożenia i historię wdrażania. Jeśli chcesz request , aby właściwości 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, jeśli DeploymentDebugLogLevel nie jest włączone za pomocą polecenia wdrożenia.
  • Gdy polecenie wdrożenia włącza DeploymentDebugLogLevelrequest właściwości i response zawierają tylko informacje dla głównego szablonu. Właściwości zagnieżdżonego szablonu zawierają null wartości.
  • Gdy zagnieżdżony szablon używa debugSetting polecenia , a polecenie wdrożenia nie zawiera DeploymentDebugLogLevel tylko zagnieżdżonego wdrożenia szablonu ma wartości właściwości request i response . Właściwości szablonu głównego zawierają null wartości.
  • Aby pobrać request szablon główny response i szablon zagnieżdżony, określ DeploymentDebugLogLevel go w poleceniu wdrożenia i użyj debugSetting go w szablonie zagnieżdżonym.

Plik Bicep

Zaleceniem dla plików Bicep jest użycie modułów , a nie szablonów zagnieżdżonych za pomocą polecenia 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 polecenie wdrożenia, request właściwości i response będą zawierać informacje tylko dla głównego wdrożenia pliku Bicep.

Usuwanie historii wdrażania debugowania

Po zakończeniu debugowania należy usunąć historię wdrażania, aby zapobiec wyświetlaniu poufnych informacji, które mogły zostać zarejestrowane. Dla każdej nazwy wdrożenia użytej podczas debugowania uruchom polecenie , aby usunąć historię wdrożenia.

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

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Polecenie jest zwracane True po pomyślnym zakończeniu.

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

Następne kroki