作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TL;DR: 搜索并用变量组中的 secret 值的解密值替换文本文件中的占位符。
我想使用 PowerShell 脚本在发布管道中接收变量组,然后遍历列表,对正在发布的文件执行搜索和替换。
变量列表中的变量是 secret 所以我想用变量的解密值覆盖文件中的占位符。
变量的值是特定于环境的,因此我不想在构建时提供这些值,也不想在存储的工件中包含解密的值。
被搜索替换的文件将在发布时用于执行,但不会部署到主机,因此将在管道执行完成后销毁。
最佳答案
Visual Studio Marketplace 中的标记化任务很好地完成了这项工作。您需要将它安装到您的 Azure DevOps 组织中,它位于 https://marketplace.visualstudio.com/items?itemName=TotalALM.totalalm-tokenization
默认情况下,Tokenization 任务使用双下划线来标识占位符。只要它被双下划线包围,它将替换与您的发布定义中的变量名称匹配的任何文本。
因此,如果您想将名为 MySecretVariable 的变量的值写入文件中,您需要添加一个占位符,例如 __MySecretVariable__
。到您希望写入该值的文件中。
标记化任务将以纯文本形式将任何加密值写入文件,但在发布日志中它们将被混淆。
如果您将变量存储在变量组中,只需将其链接到发布定义并将范围设置为适当的环境。
关于powershell - 我可以枚举 VSTS 中的变量组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376438/
我是一名优秀的程序员,十分优秀!