如何解决如何在 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: 像这样更新令牌前缀。
第 2 步:像这样更新您的模板。
"netatmoClientId": { "value": "$(netatmoClientId)" },"netatmoClientSecret": { "value": "$(netatmoClientSecret}) },"netatmoUsername": { "value": "$(netatmoUsername)" },"netatmoPassword": { "value": "$(netatmoPassword)" }
第 3 步:在 Variable Groups 或 Release Pipeline Variables 中定义上述变量
第 4 步:使用如下所示的替换令牌任务。
,这个要求可以通过在 Azure DevOps 中使用秘密文件来实现。
- 带有机密的.env 文件必须上传到 Azure Devops 库“安全文件”
- 将任务添加到管道“下载安全文件”并指向 .env 文件
steps:
- task: DownloadSecureFile@1
displayName: 'Download secure file'
inputs:
secureFile: .env
- 将任务添加到管道“Copy Files to”以将 env 文件复制到工作目录中。
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: MyProjectName'
inputs:
SourceFolder: '$(Agent.TempDirectory)'
Contents: .env
TargetFolder: MyProjectName
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。