将变量从组传递到内联 PowerShell

问题描述 投票:0回答:1

我在将某些参数从变量组传递到 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
不是。

我能够毫无问题地将秘密传递给其他任务。

powershell azure-devops azure-pipelines azure-pipelines-yaml
1个回答
0
投票

如果您在任务级别设置环境变量,则可以使用语法

$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
将显示为
*******
- 这是设计使然,因为您不希望在日志中显示敏感信息。

© www.soinside.com 2019 - 2024. All rights reserved.