我在将某些参数从变量组传递到 DevOps 管道中的内联 PowerShell 任务时遇到问题。
我配置了两个组。
variables:
- group: 'Signing Variables'
- group: 'API Variables'
下面是我的 PowerShell 任务。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$apiUrl = $(ApiBaseUrl) + "myEndpoint"
$apiKey = $(ApiSecretKey)
Write-Host $apiUrl
Write-Host $apiKey
我尝试了多种传递变量的方法,包括使用
env:
以及带或不带各种引号和括号。为什么这不起作用?我做错了什么?
ApiKey
变量在组中设置为秘密,但ApiBaseUrl
不是。
我能够毫无问题地将秘密传递给其他任务。
如果您在任务级别设置环境变量,则可以使用语法
$Env:<variable-name>
或 ${Env:<variable-name>]
在 Powershell 脚本主体中访问它:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host $Env:ApiUrl
Write-Host $Env:ApiKey
env:
ApiUrl: $(ApiBaseUrl)
ApiKey: $(ApiSecretKey)
请注意,Azure Pipelines 在将数据发送到管道日志时会努力掩盖机密,因此
ApiSecretKey
将显示为 *******
- 这是设计使然,因为您不希望在日志中显示敏感信息。