我对Azure ARM模板文件进行了一些小的更改,现在当我尝试通过xplat cli部署或验证时,我收到此消息。
错误:InvalidTemplateDeployment:模板部署 ' fakedDeploymentName'根据验证无效 程序。跟踪ID是这里的某种GUID \'。 请参阅内部错误了解详情。请参阅http://aka.ms/arm-deploy了解 用法细节。
错误:PreflightValidationCheckFailed:预检 验证失败。请参阅具体的详细信息 错误。
我很乐意解决这个问题,但我没有看到任何内部错误"在控制台上。它甚至每次都给我一个唯一的GUID,这意味着我可以使用这个GUID来查找更具信息性的消息。我在哪里可以查看更详细的错误? (还没有寻找关于错误真正来源的帮助)
答案 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的答案为基础...
为了更快/更轻松地查找错误问题,我将grep
和less
与变量一起使用,如下所示:
$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]