【问题标题】:VSTS Release - 'runtime' replacement of Environment VariableVSTS 发布 - 环境变量的“运行时”替换
【发布时间】:2018-06-12 13:55:48
【问题描述】:

我在 vsts 中发布了一些环境变量。

其中一个环境变量如下:

#Array
[ { "name":"password", "value":"thisismypassword" }, { ... } ]

但是,我从一个返回密码的发布任务中获得了一个输出参数。所以我想制作一个“标签”并在输出参数返回时替换它:

[ { "name":"password", "value":"<Password>" } ]

当我的输出参数返回时,我可以创建一个 powershell 任务来用真实密码替换“标签”。但是要替换,它应该是字符串或有效的 powershell 数组。如果我直接使用环境变量,它会在第一个“:”处中断并显示错误消息(因为它不是合法的 powershell 命令/格式);

#This breaks    
$var = $(environment_variable) 

因此我想将其转换为字符串,替换它,将其转换回 json 对象并将其设置回环境变量:

$Setting = ConvertFrom-Json -InputObject '$(environment_variable)'
$Setting = $Setting -replace "<Password>", "$(Output_Password)"

#Tried both below
$Setting_JSON - ConvertTo-Json -InputObject $Setting
$Setting_JNSON = [Newtonsoft.Json.JsonConvert]::SerializeObject($Setting, [Newtonsoft.Json.Formatting]::None)

Write-Host "##vso[task.setvariable variable=$(environment_variable)]$Setting_JSON"

但是,这些会产生一个格式不同的 json 字符串,并且使用此变量的步骤无法理解;

#Output
["@{name=Password;value=thisisapasswordvalue}"]

#Expected (and needed) Output
[ { "name":"password", "value":"thisisapasswordvalue" } ]

【问题讨论】:

  • 您希望环境变量password 何时显示为标记,何时显示具有实际值的变量?你不能使用日志命令(docs.microsoft.com/en-us/vsts/pipelines/build/…)在thisismypassword&lt;Password&gt;之间更改变量password的值吗?
  • @MarinaLiu-MSFT 我说的是发布管道,我不完全理解您使用 logging 命令的意思。
  • 是否要实现在执行任务时显示值为thisismypassword 的变量password 并在执行另一个任务时显示值为&lt;Password&gt;
  • @MarinaLiu-MSFT 不,我从另一个任务的输出中获得了真实密码。标签 应替换为任务后可用的输出密码。
  • 所以在显示真实密码的任务之后,你可以添加一个Write-Host "##vso[task.setvariable variable=password]&lt;Password&gt;"的powershell任务来更改值,然后下面的任务将显示值为&lt;Password&gt;的变量。

标签: powershell environment-variables azure-pipelines-release-pipeline


【解决方案1】:
#This breaks    
$var = $(environment_variable) 

为此,您可以使用:

$var = $Env:variablename

这对我有用:

$Setting = $env:Var1
$Setting = $Setting -replace "<Password>", "NewValue"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2017-11-11
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2018-04-11
    相关资源
    最近更新 更多