【问题标题】:How to use secret task variables with npm tasks如何在 npm 任务中使用秘密任务变量
【发布时间】:2019-07-10 14:40:24
【问题描述】:

我定义了Variable Group,它从Key Vault下载secrets。
看起来不像其他变量,秘密不会自动设置为环境变量。
我尝试使用 bash 脚本来获取这些“任务变量”并将它们设置为环境变量,但它们在下一个任务中消失了:

export ENV1=$(someSecretTaskVariable)

我正在使用无法通过 UI 提供环境变量的 npm 任务,并且 yaml 是只读的。

这应该怎么做?

【问题讨论】:

    标签: azure azure-devops azure-pipelines azure-pipelines-build-task azure-pipelines-tasks


    【解决方案1】:

    如果你想创建一个传递给后续 Azure DevOps 任务的环境变量,可以试试这个:

    echo '##vso[task.setvariable variable=ENV1]$(someSecretTaskVariable)'

    而不是export ENV1=$(someSecretTaskVariable)

    Set variables in scripts

    【讨论】:

    • 不是最好的体验,但在这种情况下肯定会成功。谢谢!
    【解决方案2】:

    我不认为你可以通过 UI 来做到这一点,但你可以通过 yaml 来做到这一点:

    - task: xxx
      env:
        ENV1=$(someSecretTaskVariable)
    

    显然你可以这样做:

    与普通变量不同,它们不会自动解密为 脚本的环境变量。你可以明确地映射它们, 不过。

    要将密钥传递给脚本,请使用环境部分 脚本任务的输入变量。

    似乎对于 UI,您只能通过脚本任务来做到这一点

    https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cbatch#secret-variables

    【讨论】:

    • 如何编辑yaml?我只看到“查看 YAML”按钮,它只显示无法编辑的 yaml
    • 您需要将管道创建为 yaml 管道,而不是可视管道
    • 不幸的是 npm 任务没有环境部分,所以我想这给我们留下了 yaml 管道,这太糟糕了:(
    • yaml 习惯了会好很多
    • 这个管道也将与其他人共享,我更喜欢坚持已知而不是让每个人都知道新格式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多