我对 Azure ARM 模板文件进行了一些小更改,现在当我尝试通过 xplat cli 进行部署或验证时,我收到此消息。
错误:InvalidTemplateDeployment:模板部署 根据验证,“fakedDeploymentName”无效 程序。跟踪 ID 是“\此处的某种 GUID\”。 有关详细信息,请参阅内部错误。请参阅 http://aka.ms/arm-deploy 了解 使用详情。
错误:预检验证检查失败:预检 验证失败。具体请参阅详情 错误。
我很想解决这个问题,但我在控制台上没有看到任何“内部错误”。它甚至每次都会给我一个唯一的 GUID,这意味着我可以使用这个 GUID 来查找信息更丰富的消息。在哪里可以查看更详细的错误? (尚未寻求有关错误真正来源的帮助)
登录 Azure 门户 Portal.azure.com。
打开活动日志
在活动列表中找到操作名称为“验证”的记录。它应该有一个红色感叹号,因为它失败了。
单击该记录。然后单击底部的 JSON 选项卡。仔细阅读,在返回的 Json 深处,您可能会在 statusMessage 中发现错误,例如“名为 helloworld 的存储帐户已被占用。”
确保您运行的是最新版本的 CLI,我们正在努力显示详细的错误。如果仍未解决问题,请告诉我们 https://github.com/Azure/azure-xplat-cli/issues
然后,如果日志没有向您显示详细信息,请使用 -vv 开关运行部署,详细的调试输出(虽然很详细)将包含所有错误消息,您通常可以筛选并找到特定的故障。
azure group deployment create ... --debug
Powershell:
New-AzResourceGroupDeployment ... -debug
使用
Get-AzLog
,因为 Get-AzureRMLog
现已弃用。
Get-AzLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput
使用提供的跟踪 ID 运行以下 PowerShell Azure cmdlet:
Get-AzureRMLog -CorrelationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DetailedOutput
以 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
和正斜杠键 / 并搜索“错误”以更快地找到错误。
以@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
我也遇到了同样的问题。基本上,我无法通过“InvalidTemplateDeployment”获得任何详细信息。
我在 Visual Studio:Azure 资源组项目模板中添加了 ARM 模板并尝试部署它。我在“输出”选项卡中获得了详细信息。这帮助我解决了我的问题。
在我的例子中,它是集群的名称,它只能是小写字母和数字。
az vm list [--only-show-errors]
[--resource-group]
[--show-details]
[--subscription]
如果您在 PowerShell 中使用 Az 模块,则可以使用
Get-AzLog
代替 Get-AzureRMLog
(基于 @nftw 的答案):
Get-AzLog -CorrelationId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -DetailedOutput