验证成功后,Test-AzureRmResourceGroupDeployment cmdlet返回Empty

时间:2016-06-07 11:31:35

标签: azure powershell azure-resource-manager azure-powershell arm-template

我使用下面的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月)

2 个答案:

答案 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
    }
}