Как устранить ошибки проверки шаблона шаблона Azure ARM?
Я внес некоторые небольшие изменения в файл шаблона Azure ARM, и теперь, когда я пытаюсь развернуть или проверить с помощью xplat cli, я получаю это сообщение.
Ошибка: InvalidTemplateDeployment: развертывание шаблона "fakedDeploymentName" недействительно в соответствии с процедурой проверки. Идентификатор отслеживания - '\ какой-то GUID здесь'. Подробнее см. Внутренние ошибки. Подробнее см. Http://aka.ms/arm-deploy.
error: PreflightValidationCheckFailed: Не удалось выполнить проверку перед полетом. Пожалуйста, обратитесь к деталям для конкретных ошибок.
Я хотел бы устранить эту проблему, но я не вижу никаких "внутренних ошибок" на консоли. Это даже дает мне уникальный GUID каждый раз, подразумевая, что я могу использовать этот GUID для поиска более информативного сообщения. Где я могу просмотреть более подробную ошибку? (не ищите помощи на реальном источнике ошибки)
Ответы
Ответ 1
Убедитесь, что вы используете последнюю версию CLI, мы работаем над тем, чтобы увеличить подробную ошибку. Если это еще не догоняет, сообщите нам об этом: https://github.com/Azure/azure-xplat-cli/issues
Затем, если журнал не показывает вас подробно, запустите развертывание с помощью переключателя -vv, подробный вывод отладки (в то время как подробный) будет содержать все сообщения об ошибках, и вы обычно можете просеять и найти конкретный сбой.
azure group deployment create ... -vv
Powershell:
New-AzureRmResourceGroupDeployment ... -debug
Ответ 2
Войдите в портал azure portal.azure.com.
Открыть журнал активности
Найдите запись с названием Operation Validate в списке действий. Он должен иметь красный восклицательный знак, потому что он потерпел неудачу.
Нажмите на эту запись. Затем нажмите вкладку JSON внизу. Получите чтение и где-то глубоко в возвращенном Json, вы можете обнаружить ошибку в statusMessage, такую как "Аккаунт хранилища с именем helloworld уже сделан".
Ответ 3
Запустите следующий командлет PowerShell Azure с указанным идентификатором отслеживания:
Get-AzureRMLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput
Ответ 4
Основываясь на @nftw:
$deploymentGroupName = 'deploymentGroupName'
$correlationId = ((Get-AzureRMLog -ResourceGroup $deploymentGroupName)[0]).CorrelationId
$logentry = (Get-AzureRMLog -CorrelationId $correlationId -DetailedOutput)
#$logentry
$rawStatusMessage = $logentry.Properties
$status = $rawStatusMessage.Content.statusMessage | ConvertFrom-Json
$status.error.details
$status.error.details.details
Ответ 5
Я считаю, что идентификатор отслеживания предназначен для технической поддержки для просмотра их журналов, а не для пользователя. Что касается вашего точного вопроса, вам нужно взглянуть на журнал - ссылку.
Еще один хороший способ проверить шаблон - использовать проводник ресурсов.
Ответ 6
Я работал в том же выпуске. В принципе, я не мог получить никаких данных, переданных "InvalidTemplateDeployment".
Я добавил шаблон ARM в шаблон проекта Visual Studio: Azure Resource Group и попытался его развернуть. Я получил подробные сведения на вкладке "Вывод". Это помогло мне решить мою проблему.
В моем случае это было название кластера, это могут быть только маленькие буквы и цифры.