Включение ведения журнала отладки
Чтобы устранить ошибку развертывания, можно включить ведение журнала отладки, чтобы получить дополнительные сведения. Ведение журнала отладки работает для развертываний с файлами Bicep или шаблонами azure Resource Manager (шаблоны ARM). Вы можете получить данные о запросе и ответе развертывания, чтобы узнать причину проблемы.
Предупреждение
Ведение журнала отладки может предоставлять секреты, такие как пароли или listKeys
операции. Включайте ведение журнала отладки, только когда вам нужно устранить ошибку развертывания. Завершив отладку, следует удалить журнал развертывания отладки.
Настройка ведения журнала отладки
Используйте Azure PowerShell, чтобы включить ведение журнала отладки, которое заполняет request
свойства и response
сведениями о развертывании для устранения неполадок. Ведение журнала отладки нельзя включить с помощью Azure CLI.
Ведение журнала отладки включено только для основного шаблона ARM или файла Bicep. Если вы используете вложенные шаблоны ARM или модули Bicep, см. раздел Отладка вложенного шаблона.
Для развертывания группы ресурсов используйте Командлет New-AzResourceGroupDeployment и задайте DeploymentDebugLogLevel
для параметра All
значение , ResponseContent
или RequestContent
.
Если ведение журнала отладки включено, отображается предупреждение о том, что секреты, такие как пароли или listKeys
операции, могут регистрироваться и отображаться при использовании таких команд, как Get-AzResourceGroupDeploymentOperation
для получения сведений об операциях развертывания.
New-AzResourceGroupDeployment `
-Name exampledeployment `
-ResourceGroupName examplegroup `
-TemplateFile main.bicep `
-DeploymentDebugLogLevel All
В выходных данных развертывания отображается уровень ведения журнала отладки.
DeploymentDebugLogLevel : RequestContent, ResponseContent
Параметр DeploymentDebugLogLevel
доступен для других областей развертывания: подписки, группы управления и арендатора.
Получение отладочной информации
После включения ведения журнала отладки можно получить дополнительные сведения об операциях развертывания. Командлеты Azure PowerShell для операций развертывания не выводить request
свойства и response
. Для получения сведений из этих свойств необходимо использовать Azure CLI.
Если вы не включите ведение журнала отладки с помощью команды развертывания, вы по-прежнему можете получить сведения об операциях развертывания. Используйте Azure PowerShell или Azure CLI, чтобы получить код состояния, сообщение о состоянии и состояние подготовки.
Для развертывания группы ресурсов используйте Get-AzResourceGroupDeploymentOperation, чтобы получить операции развертывания.
Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup
Для фильтрации выходных данных можно указать свойство , например StatusCode
, StatusMessage
или ProvisioningState
.
(Get-AzResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).StatusCode
Дополнительные сведения см. в документации по областям операции развертывания: подписка, группа управления и арендатор.
Отладка вложенного шаблона
Основной шаблон ARM и вложенные шаблоны имеют собственное имя развертывания и журнал развертывания. Основной файл Bicep и модуль также используют отдельное имя развертывания и журнал развертывания.
Шаблон ARM
Чтобы записать сведения об отладке для вложенного шаблона ARM, используйте Microsoft.Resources/deployments со свойством debugSetting
.
В следующем примере показан вложенный шаблон с debugSetting
для регистрации запроса и ответа развертывания.
"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"
}
}
}
],
Основной шаблон ARM и вложенные шаблоны имеют собственное имя развертывания и журнал развертывания. Если требуется, request
чтобы свойства и response
содержали сведения об устранении неполадок, следует учитывать следующие сценарии развертывания:
- Свойства
request
иresponse
содержатnull
значения для основного и вложенного шаблона, еслиDeploymentDebugLogLevel
команда развертывания не включена. - Если команда развертывания включает
DeploymentDebugLogLevel
request
, свойства иresponse
содержат сведения только для основного шаблона. Свойства вложенного шаблона содержатnull
значения. - Если вложенный шаблон использует
debugSetting
, а команда развертывания не включаетDeploymentDebugLogLevel
только вложенное развертывание шаблона имеет значения дляrequest
свойств иresponse
. Свойства основного шаблона содержатnull
значения. - Чтобы получить
request
иresponse
для основного и вложенного шаблона, укажитеDeploymentDebugLogLevel
в команде развертывания и используйтеdebugSetting
во вложенном шаблоне.
Файл Bicep
Для файлов Bicep рекомендуется использовать модули , а не вложенные шаблоны с Microsoft.Resources/deployments
. Сообщение о состоянии, код состояния и состояние подготовки будут содержать сведения для основного файла Bicep и модуля, которые можно использовать для устранения неполадок при развертывании.
Если включить DeploymentDebugLogLevel
из команды развертывания, request
свойства и response
будут содержать сведения только о развертывании основного файла Bicep.
Удаление журнала развертывания отладки
Завершив отладку, необходимо удалить журнал развертывания, чтобы любой пользователь, имеющий доступ, не мог просматривать конфиденциальную информацию, которая могла быть зарегистрирована. Для каждого имени развертывания, которое использовалось во время отладки, выполните команду , чтобы удалить журнал развертывания.
Чтобы удалить журнал развертывания для развертывания группы ресурсов, используйте Remove-AzResourceGroupDeployment.
Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment
Команда возвращает True
при успешном выполнении.
Дополнительные сведения о журнале развертывания см. в документации по областям развертывания: подписка, группа управления и арендатор.