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
, ResponseContent
lub 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
, StatusMessage
lub 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
iresponse
zawierająnull
wartości dla głównego szablonu i szablonu zagnieżdżonego, jeśliDeploymentDebugLogLevel
nie jest włączone za pomocą polecenia wdrożenia. - Gdy polecenie wdrożenia włącza
DeploymentDebugLogLevel
request
właściwości iresponse
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 zawieraDeploymentDebugLogLevel
tylko zagnieżdżonego wdrożenia szablonu ma wartości właściwościrequest
iresponse
. Właściwości szablonu głównego zawierająnull
wartości. - Aby pobrać
request
szablon głównyresponse
i szablon zagnieżdżony, określDeploymentDebugLogLevel
go w poleceniu wdrożenia i użyjdebugSetting
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.