gpt4 book ai didi

node.js - 如何在azure devops管道中为node js构建作业设置环境变量

转载 作者:行者123 更新时间:2023-12-02 20:57:51 25 4
gpt4 key购买 nike

我正在将一些 secret 从 Azure Key Vault 导入变量组到 CI/CD 管道。

我能够使用 Azure Devops UI 从 KeyVault 映射 VariableGroup 中所需的 secret 。

在我的管道 YAML 中,我能够读取和打印那些作为 AzureKeyVault secret 的 VariableGroup 变量。

    trigger:
- dev

# define the VM image
pool:
vmImage: "Ubuntu 16.04"

# define variables to use during the build
variables:
- group: SecretVarGroup # it has keyvault variable 'KV_API_KEY'
- group: PublicVarGroup # it has a variable 'API_CLIENTID'

# define the step to export key to env varaiable
steps:

- script: echo $MYSECRETAPIKEY
env:
MYSECRETAPIKEY: $(KV_API_KEY)

## Run the npm build
- script: |
npm run build
displayName: "npm build"

我能够在构建输出日志中看到“KV_API_KEY” secret 的值打印为 *** 值,我认为它能够使用该日志。我还看到构建日志中打印的 API_CLIENTID 值以及 Node js process.env 对象。

我假设变量“MYSECRETAPIKEY”将在我的 Node js process.env 对象中可用。但它不可用。

我测试它的方式是在我的 Node js 项目构建配置中,我有一个打印 process.env 对象的打印语句。它打印了管道构建代理的所有环境变量,包括我的 PUBLICVARGROUP 变量“API_CLIENTID”。但我在 process.env 对象中没有看到我的 secret 变量“MYSECRETAPIKEY”。

   env:
MYSECRETAPIKEY: $(KV_API_KEY)

我认为上面的行会将变量导出到特定的语言处理环境。但事实并非如此。我该如何解决这个问题?

最佳答案

# define the step to export key to env varaiable
steps:

## Run the npm build
- script: |
npm run build
displayName: "npm build"
env:
MYSECRETAPIKEY: $(KV_API_KEY)

看起来 secret 的范围是在代理上供各个任务和脚本使用。问题是我在一个单独的临时任务中有 env: 声明。将其移至上述代码中脚本声明的同一位置已解决该问题。

关于node.js - 如何在azure devops管道中为node js构建作业设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62006365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com