Командлет Test-AzureRmResourceGroupDeployment возвращает значение "Пусто" при успешной проверке
Я использую приведенный ниже командлет Azure Powershell, чтобы проверить json-файлы ARM-шаблона и jms-файлов ARM-шаблона.
$result = Test-AzureRmResourceGroupDeployment -ResourceGroupName TestRG -TemplateFile TestARMTemplate.json -ApiVersion TestARMParams.json
Я ожидаю, что командлет вернет true (логический тип), если оба входных аргумента верны.
Тем не менее, результат пуст.
В документации также нет ясности относительно ожидаемого ответа этого командлета.
Я хотел бы знать, является ли полученный ответ ожидаемым или нет.
Примечание. Я использую Azure PowerShell версии 1.5 (июнь 2016 г.) на компьютере с Windows 10.
2 ответа
Глядя на исходный код этого командлета here
Я не думаю, что это возвращает истину или ложь. На самом деле он возвращает объект типа List<PSResourceManagerError>
, Если вы рассчитываете на $result
объект, он должен вернуть вам ноль, если все в порядке.
Вот удобная функция для создания 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
}
}