azure - 可以在 Azure DevOps 中定义数组变量 "variable group"

标签 azure azure-devops azure-pipelines devops

我想在Azure devops“变量组”中定义一些变量,这些变量将在Powershell中使用,但是当变量类型是字符串时它可以工作,但有些是数组或对象时出错了。我的如下所示。左边是名称,右边是

vmAlertedArray_backup => @("wbubuntu","wbubuntu2")

1.当我使用azure devops脚本时,它出错了

$vmAlertedArray_backup = $env:vmAlertedArray_backup foreach($vmAlertedArray_backup 中的 $c){ 写入主机“$c” }

2.本地作品中的powershell如下

$vmAlertedArray_backup = @("wbubuntu","wbubuntu2") foreach($vmAlertedArray_backup 中的 $c){ 写入主机“$c” }

谁能提供一些这方面的经验吗?谢谢

最佳答案

建议仅将变量作为字符串传递。如果要将对象传递给其他任务,可以使用“ConvertTo-Json -Compress”将其转换为 json 字符串。

$objectString = $object | ConvertTo-Json -Compress
Write-Host "##vso[task.setvariable variable=objectString;]$objectString"

并且在下一个 PS 任务中,您可以将其作为环境变量传递。但是,请将变量用单引号引起来。

enter image description here

然后您可以使用“ConvertFrom-Json”将字符串转换为对象。

$getFromEnv = $env:objectString | ConvertFrom-Json
foreach( $obj in $getFromEnv){
    Write-Host ("displayName:{0} Id:{1}" -f $obj.displayName, $obj.Id)
} 

关于azure - 可以在 Azure DevOps 中定义数组变量 "variable group",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174843/

相关文章:

azure - 为什么准备 Linux VM 部署的 SSL 证书时 'az vm secret format' 命令失败?

c# - Azure 文件存储 : Create nested directories

asp.net - 如何将 Windows Azure CDN 与现有 ASP.NET Webforms 应用程序结合使用?

azure - 在 AzurePowerShellV5 内联脚本中引用 yaml 变量

azure-devops - 如何在 Azure DevOps Service (VSTS online) 中自定义工作流?

azure-devops - Azure DevOps : how to disable CI trigger on a YAML template pipeline?

Azure pipeline yml - 更改任务中的值并根据 if else 条件执行

azure-devops - 在 Azure DevOps 构建管道期间创建 json 文件

azure - 为什么我无法在 azure devops yaml 模板中的 if 条件中传递运行时变量

git - Azure Pipelines 找到传入 merge 的提交哈希