Поделиться через


Включение ведения журнала отладки

Чтобы устранить ошибку развертывания, можно включить ведение журнала отладки, чтобы получить дополнительные сведения. Ведение журнала отладки работает для развертываний с файлами 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 команда развертывания не включена.
  • Если команда развертывания включает DeploymentDebugLogLevelrequest , свойства и 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 при успешном выполнении.

Дополнительные сведения о журнале развертывания см. в документации по областям развертывания: подписка, группа управления и арендатор.

Дальнейшие действия