Azure Devops中的variable group建议或者只能(?)添加string类型的value。基于此我们想在variable group实现array或者hashtable的传递的核心思路就是先定义出合适易转换的字符串,

然后将字符串转为我们想要的array和hashtable。为了测试,我在的variable group中预先添加了arraystring 和 hashstring,一定要注意我设置的方法,value值格式会影响整个过程。

利用rest api 去get一下值,我们可以得到如下:

PS C:\Users\wenbo> $group.variables

arraystring                 hashstring
----------- ----------
@{value=wbubuntu,wbubuntu2} @{value=@{"key"="value";"key2"="value2"}}

我们看下类型:

PS C:\Users\wenbo> $group.variables.arraystring.value.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ---- --------
True True String System.Object PS C:\Users\wenbo> $group.variables.hashstring.value.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object

两个都是string,在做参数传递的时候,我们希望值是array和hashtable

1.转array string,此处的转换方法和你写的value值有关系,自己对应即可

PS C:\Users\wenbo> $array = $group.variables.arraystring.value.Split(",")

PS C:\Users\wenbo> $array
wbubuntu
wbubuntu2 PS C:\Users\wenbo> $array.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array

2.转hashtable

PS C:\Users\wenbo> $hash = Invoke-Expression $group.variables.hashstring.value

PS C:\Users\wenbo> $hash

Name                           Value
---- -----
key value
key2 value2 PS C:\Users\wenbo> $hash.GetType() IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Hashtable System.Object

Azure DevOps的variable group实现array和hashtable参数的传递的更多相关文章

  1. Azure DevOps 利用rest api设置variable group

    我们在Azure DevOps中设置参数的时候,可以使用build,release各自的variables,但是各自的变量不能共用.此时我们需要使用variable group,它允许跨Build和R ...

  2. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  3. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

  4. [Azure DevOps] 编译时自动修改版本号

    1. 需求 在使用 Pipeline 自动化 CI/CD 流程的过程中,我还还需要自动修改程序集的版本号.这个功能 EdiWang 和LeoLaw 都写文章讲解过做法.不过我的项目基本都是 .Net ...

  5. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

  6. Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

    一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会 ...

  7. Azure Terraform(十一)Azure DevOps Pipeline 内的动态临时变量的使用

    思路浅析 在我们分析的 Azure Terraform 系列文中有介绍到关于 Terraform 的状态文件远程存储的问题,我们在  Azure DevOps Pipeline 的 Task Job ...

  8. Azure Devops/Tfs 编译的时候自动修改版本号

    看到阿迪王那边出品了一个基于Azure Devops自增版本号  链接 http://edi.wang/post/2019/3/1/incremental-build-number-for-net-c ...

  9. 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化

    介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...

随机推荐

  1. SQlAlchemy的增删改查

    一.创建数据表 # ORM中的数据表是什么呢? # Object Relation Mapping # Object - Table 通过 Object 去操纵数据表 # 从而引出了我们的第一步创建数 ...

  2. 59、servlet3.0-异步请求

    59.servlet3.0-异步请求 59.1 开启servlet异步请求步骤 支持异步处理 asyncSupported=true 开启异步模式 req.startAsync(); 业务逻辑进行异步 ...

  3. 题解 [51nod1753] 相似子串

    题解 [51nod1753] 相似子串 题面 解析 先考虑相等的时候怎么办, 我们考虑求出每个字母的贡献,这样字母相等的问题就可以用并查集来解决. 具体来说,我们先对于每个字母,把S中等于它的标为1, ...

  4. 测试使用API

    https://api.github.com/users/github 返回值中的某些URL也可以作为测试API使用

  5. Homestead can not mount nfs on macos catalina

    It's not a vagrant issue but nfsd/macos issue.If you add to /etc/exports line:/Users/USERNAME/Docume ...

  6. 页面打开excel

    1. File => Stream / MemoryStream FileStream stream = new FileStream(path, FileMode.Open, FileAcce ...

  7. tsar安装和使用

    Tsar简介 Tsar是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等). 收集到的数据存储在磁 ...

  8. spark常见错误【持续更新】

    错误1.错误: 找不到或无法加载主类 idea.scala代码 idea 导入的scala工程,编写代码后报该错误. 原因:\src\main\scala 包路径下没有将scala这个包设置成Sour ...

  9. linux环境下固定ip操作

    背景: 使用虚拟机管理软件VMvare workstation 安装好liunx虚拟机(centos)成功,下面为了固定linux的ip进行一系列设置 参考的文件有部分不是很详细,在借鉴它的基础上进行 ...

  10. 如果对方网站反爬取,封IP了怎么办?

    放慢抓取熟速度,减小对目标网站造成的压力,但是这样会减少单位时间内的数据抓取量 使用代理IP(免费的可能不稳定,收费的可能不划算)