我使用下面的Azure Powershell cmdlet验证ARM模板json和ARM模板参数json文件。
$result = Test-AzureRmResourceGroupDeployment -ResourceGroupName TestRG -TemplateFile TestARMTemplate.json -ApiVersion TestARMParams.json
如果两个输入参数都有效,我希望cmdlet返回 true (布尔类型)。
然而,结果是空的。
有关此cmdlet的预期响应的文档也不清楚。
我想知道我得到的回应是否是预期的反应。
注意:我在Windows 10计算机上使用 Azure PowerShell版本1.5(2016年6月)。
答案 0 :(得分:5)
查看此Cmdlet here
的源代码,我不认为它返回true或false。它实际上返回List<PSResourceManagerError>
类型的对象。如果你对$result
对象进行计数,如果一切正常,它应该返回零。
答案 1 :(得分:1)
这是一个方便的功能,用于创建包含AggregateException
中所有错误信息的PSResourceManagerError
function New-DeploymentResultException([Microsoft.Azure.Commands.ResourceManager.Cmdlets.SdkModels.PSResourceManagerError]$error)
{
$errorMessage = "$($error.Message) ($($error.Code)) [Target: $($error.Target)]"
if ($error.Details)
{
$innerExceptions = $error.Details | ForEach-Object { New-DeploymentResultException $_ }
return New-Object System.AggregateException $errorMessage, $innerExceptions
}
else
{
return New-Object System.Configuration.ConfigurationErrorsException $errorMessage
}
}