【问题标题】:Azure DevOps: can't get secret value from variable group in environment varsAzure DevOps:无法从环境变量中的变量组获取秘密值
【发布时间】:2020-10-14 17:13:21
【问题描述】:

我在 Azure DevOps 中使用变量组来存储常规和“秘密”变量

我曾经在代理的环境变量中看到常规变量和“秘密”变量(秘密值的值被 ***** 屏蔽)

今天我发现代理的环境变量中不再存在秘密变量

我是唯一一个面对它的人吗?有什么解决方法吗?

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    根据this doc

    与普通变量不同,它们不会自动解密为 脚本的环境变量。您需要明确映射秘密 变量。

    根据我的测试,我还可以确认秘密变量没有出现在环境变量中。

    您可以使用$(secretvariable) 格式调用秘密。

    如果你还想把secret变量设置为环境变量,可以使用environemt脚本来实现。

    例如:

      - task: PowerShell@2
        inputs:
          targetType: 'inline'
          script: 'Write-Host "##vso[task.setvariable variable=variablename;]$(test3)"'
    

    说明:

    $(test3) 是秘密变量。您可以将秘密变量(test3)设置为新的环境变量(变量名)。

    那么你可以使用$env:variablename来调用环境变量。

    希望这会有所帮助。

    【讨论】:

    • 非常感谢,echo $(secret_var) 在内联模式下工作
    【解决方案2】:

    您必须先将密钥的名称映射到环境变量,然后才能使用它。

    示例改编自Microsoft docs

    variables: 
    - group: 'my-var-group' # variable group pretend it contains `user` and `token` variables. Token is secret
    
    steps:
    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          # use $Env:USER for user variable
          # use $Env:MY_MAPPED_TOKEN for secret token var that has been mapped in the `env` below
      env:
        MY_MAPPED_TOKEN: $(token) # Maps the secret variable $(token) from my-var-group
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-08
      • 2020-04-02
      • 2019-04-30
      • 2022-01-12
      • 2018-06-14
      • 2023-03-08
      • 2023-01-22
      • 1970-01-01
      相关资源
      最近更新 更多