0

我想将 Azure DevOps 用于 IoT Edge 项目,其中一些机密应通过 json 文件传递​​。这是 deployment.template.json 文件的片段:

        "env": {
      "mappedFolder": { "value": "/temp" },
      "netatmoClientId": { "value": "${netatmoClientId}" },
      "netatmoClientSecret": { "value": "${netatmoClientSecret}" },
      "netatmoUsername": { "value": "${netatmoUsername}" },
      "netatmoPassword": { "value": "${netatmoPassword}" },

本地一切正常。我有 .env 文件,并且 json 中的值将在构建期间正确替换。

如何在 Azure DevOps 中使用相同的行为?

我已经声明了 devops 管道变量,但是 json 文件中的占位符没有从变量中替换。

4

2 回答 2

0

你可以在 Azure DevOps 发布管道中使用此任务替换令牌。

第 1 步:像这样更新令牌前缀。

在此处输入图像描述

第 2 步:像这样更新您的模板。

"netatmoClientId": { "value": "$(netatmoClientId)" },
"netatmoClientSecret": { "value": "$(netatmoClientSecret}) },
"netatmoUsername": { "value": "$(netatmoUsername)" },
"netatmoPassword": { "value": "$(netatmoPassword)" }

第 3 步:在变量组或发布管道变量中定义上述变量

第 4 步:使用如下所示的替换令牌任务。

在此处输入图像描述

于 2021-01-06T09:55:43.867 回答
0

在 Azure DevOps中使用Secret 文件可以实现此要求。

  1. 包含机密的 .env 文件必须上传到 Azure Devops 库“安全文件”
  2. 将任务添加到管道“下载安全文件”并指向 .env 文件
steps:
- task: DownloadSecureFile@1
  displayName: 'Download secure file'
  inputs:
    secureFile: .env
  1. 将任务添加到管道“将文件复制到”以将 env 文件复制到工作目录中。
steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: MyProjectName'
  inputs:
    SourceFolder: '$(Agent.TempDirectory)'
    Contents: .env
    TargetFolder: MyProjectName

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-secure-file?view=azure-devops

于 2021-01-06T11:39:30.800 回答