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


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

Чтобы устранить ошибку развертывания, можно включить ведение журнала отладки, чтобы получить дополнительные сведения. Ведение журнала отладки работает для развертываний с файлами Bicep или шаблонами Azure Resource Manager (шаблоны ARM). Вы можете получить данные о запросе и ответе развертывания, чтобы узнать причину проблемы.

Предупреждение

Ведение журнала отладки может раскрыть такие секреты, как пароли или listKeys операции. Включайте ведение журнала отладки только в том случае, если необходимо устранить ошибку развертывания. После завершения отладки необходимо удалить журнал развертывания отладки.

Настройка ведения журнала отладки

Используйте Azure PowerShell, чтобы включить ведение журнала отладки, которое заполняет request свойства and 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 свойства and 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 , чтобы свойства and response содержали сведения об устранении неполадок, учитывайте следующие сценарии развертывания:

  • Свойства request and response содержат null значения для основного шаблона и вложенного шаблона, если DeploymentDebugLogLevel не включен с помощью команды развертывания.
  • Когда команда развертывания включает DeploymentDebugLogLevel , request свойства and response содержат информацию только для основного шаблона. Свойства вложенного шаблона содержат null значения.
  • Если во вложенном шаблоне debugSetting используется команда and the deployment not include DeploymentDebugLogLevel only, развертывание вложенного шаблона имеет значения для request свойств and response . Основные свойства шаблона содержат null значения.
  • Чтобы получить request и response для основного шаблона и вложенного шаблона, укажите DeploymentDebugLogLevel в команде deployment и используйте debugSetting во вложенном шаблоне.

файл Bicep

Для файлов Bicep рекомендуется использовать модули , а не вложенные шаблоны с Microsoft.Resources/deployments. Сообщение о состоянии, код состояния и состояние подготовки будут содержать сведения об основном файле Bicep и модуле, которые можно использовать для устранения неполадок развертывания.

Если вы включите эту функцию DeploymentDebugLogLevel с помощью команды развертывания, свойства request and response будут содержать информацию только о развертывании основного файла Bicep.

Удаление журнала развертывания отладки

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

Чтобы удалить журнал развертывания для развертывания группы ресурсов, используйте Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Команда возвращается True после успешного выполнения.

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

Дальнейшие шаги