微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Azure DevOps 中的“deployment.template.json”中替换 IoT Edge 环境变量

如何解决如何在 Azure DevOps 中的“deployment.template.json”中替换 IoT Edge 环境变量

我想将 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 文件中的占位符没有从变量中替换。

解决方法

您可以在 Azure DevOps 发布管道中使用此任务 Replace Tokens

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

enter image description here

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

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

第 3 步:在 Variable Groups 或 Release Pipeline Variables 中定义上述变量

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

enter image description here

,

这个要求可以通过在 Azure DevOps 中使用秘密文件来实现。

  1. 带有机密的.env 文件必须上传到 Azure Devops 库“安全文件”
  2. 将任务添加到管道“下载安全文件”并指向 .env 文件
steps:
- task: DownloadSecureFile@1
  displayName: 'Download secure file'
  inputs:
    secureFile: .env
  1. 将任务添加到管道“Copy Files to”以将 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。