Azure DevOps发布管道-使用带句点的env参数。在

时间:2019-08-13 07:15:36

标签: azure-devops azure-pipelines azure-powershell

我发现在Powershell步骤中使用AZDO Release管道变量令人发疯。

我正在运行Azure PowerShell步骤以返回主键值。是2行...

$primarykey = (Get-AzRelayKey -ResourceGroupName ${env:az-resourcegroupname} -Namespace ${env:az-relaynamespace} -HybridConnection ${env:serviceBus.primaryRelay.ConnectionName} -Name ${env:serviceBus.primaryRelay.KeyName} | Select-Object -ExpandProperty PrimaryKey)

Write-Host "##vso[task.setvariable variable=serviceBus.primaryRelay.Key]$primarykey"

在我的管道中,我混合使用了多个变量名,其中一些变量可以完全控制(以 az-为前缀的变量),而其他变量则没有(可以以 serviceBus开头的变量)。 / strong>)

我无法控制后者的原因是它们被用于以后的文件转换步骤,该步骤可导航appsettings.json文件以查找/替换值,并且无法更改(例如serviceBus.primaryRelay.ConnectionName)是在JSON中更改的值,并且文件转换步骤指定用于导航JSON结构,它必须以句点分隔。)

此脚本运行时,总是会抱怨 -HybridConnection 值为空。这是因为变量中包含句点。

我已经尽力想尽一切办法在代码中检索该值。

他们是否在此暗示带有周期的变量在AZDO发布管道中的Powershell中不可用?我完全迷路了。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

我已经通过在发布管道“初始化作业”日志下找到了答案。它似乎替代了时期。带破折号-

日志显示了这个...

[SERVICEBUS_PRIMARYRELAY_CONNECTIONNAME]-> [dev-sbrelay]