如何解决Azure ARM模板验证错误?

时间:2016-06-06 18:21:00

标签: azure azure-resource-manager

我对Azure ARM模板文件进行了一些小的更改,现在当我尝试通过xplat cli部署或验证时,我收到此消息。

  

错误:InvalidTemplateDeployment:模板部署   ' fakedDeploymentName'根据验证无效   程序。跟踪ID是这里的某种GUID \'。   请参阅内部错误了解详情。请参阅http://aka.ms/arm-deploy了解   用法细节。

     

错误:PreflightValidationCheckFailed:预检   验证失败。请参阅具体的详细信息   错误。

我很乐意解决这个问题,但我没有看到任何内部错误"在控制台上。它甚至每次都给我一个唯一的GUID,这意味着我可以使用这个GUID来查找更具信息性的消息。我在哪里可以查看更详细的错误? (还没有寻找关于错误真正来源的帮助)

8 个答案:

答案 0 :(得分:29)

登录azure portal portal.azure.com。

打开活动日志

在活动列表中找到“操作名称为验证”的记录。它应该有一个红色感叹号,因为它失败了。

点击该记录。然后单击底部的JSON选项卡。在返回的Json中获取阅读和内心深处你可能会在statusMessage中发现错误,例如“已经采用了名为helloworld的存储帐户。”

答案 1 :(得分:20)

确保您正在运行最新版本的CLI,我们正在努力解决详细错误。如果仍然没有抓住它,请告诉我们https://github.com/Azure/azure-xplat-cli/issues

然后,如果日志没有显示详细信息,请使用-vv开关运行部署,详细的调试输出(虽然详细)将包含所有错误消息,您通常可以筛选并找到具体的故障。

azure group deployment create ... -vv

Powershell的:

New-AzureRmResourceGroupDeployment ... -debug

答案 2 :(得分:14)

使用提供的跟踪ID运行以下PowerShell Azure cmdlet:

Get-AzureRMLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput

答案 3 :(得分:1)

我认为跟踪ID用于查看日志的技术支持,而不是用户。 关于您的确切问题,您需要查看日志 - reference

验证模板的另一个好方法是使用Resource Explorer

答案 4 :(得分:1)

建立在@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 :(得分:1)

以nftw的答案为基础...

为了更快/更轻松地查找错误问题,我将grepless与变量一起使用,如下所示:

$correlationId ='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # store your correlation ID here
Get-AzureRmLog -CorrelationId $correlationID -DetailedOutput | grep -C 10 $correlationID | less

在我的测试中,错误接近输出的顶部。您可以使用less和正斜杠键 / 并搜索“错误”以更快地找到错误。

答案 6 :(得分:0)

我在同一个问题上跑步。基本上,我无法通过“InvalidTemplateDeployment”获得任何细节。

我在Visual Studio:Azure资源组项目模板中添加了我的ARM模板,并尝试部署它。我在“输出”选项卡中得到了详细的详细信息。这帮我解决了我的问题。

在我的情况下,它是群集的名称,它只能是小写字母和数字。

答案 7 :(得分:0)

az vm list [--only-show-errors]
           [--resource-group]
           [--show-details]
           [--subscription]