我们使用VSTS来部署ARM模板 . (Azure部署任务版本:2) . 在此任务中,我们可以配置输出变量 . 将在此变量中输出ARM模板的json输出 . 在我的例子中,它被称为armOutputJson .
在下一个任务中,我有一个内联的PowerShell脚本,它试图将此值转换为powershell对象 .
$outputObject = ConvertFrom-Json -InputObject @"
$(armOutputJson)
"@
Write-Host "##vso[task.setvariable variable=armOutput]"$outputObject
Write-Host $outputObject
输出似乎像这样写入主机:
@{storageAccountName=; functionAppName=}
看起来设置没有正确解析?此外,当尝试使用$(armOutput).functionAppName.value在我的部署任务中访问此变量时,出现以下错误:
[错误]错误:资源'@ . functionAppName.value'不存在 . 资源应该在部署之前存在 .
任何人都知道我如何解析输出json到一个vsts变量并在另一个任务中使用它?
2 回答
尝试调用Format-Custom来格式化输出
$outputObject | Format-Custom -Depth 5
Related issue ConvertFrom-Json not deep?
你做得差不多,方法很好,只是一些语法拼写错误 . 这应该工作(至少它适用于我):