【发布时间】:2020-04-27 22:05:28
【问题描述】:
我有一个appsettings.json 文件,我想在其中转换位于以下位置的值:
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true"
},
我找到了以下答案,所以我知道应用服务可以直接从密钥库中检索值:
https://stackoverflow.com/a/59994040/3850405
这不是问的原因。由于微软提供JSON variable substitution,我仍然认为这应该是可能的,因为唯一的问题是嵌套值。上面的问题很相似,但我想多说明一下已经测试过的内容以及我卡在哪里。
可以使用管道 -> 库 -> 变量组
或 Azure Key Vault 任务来获取机密值。
问题是秘密值不能包含点:
请提供一个有效的秘密名称。秘密名称只能包含 字母数字字符和破折号。
在链接的变量组或 Azure Key Vault 任务中,我都被允许将机密名称重写为另一个变量名称。
如果秘密名称是ConnectionStringsDefaultConnection,请查看下面的示例,我可以访问$(ConnectionStringsDefaultConnection) 这样的值,但我不知道如何重命名它。
https://azuredevopslabs.com/labs/vstsextend/azurekeyvault/
我找到了一个可以完成工作的任务,但它需要第三方发布任务。这是不可接受的,因为该项目仅允许 Microsoft 编写的任务。
我也知道可以使用 Pipeline 变量来存储值,但我们不希望有单一的事实来源,那就是 Azure Key Vault Secret。
【问题讨论】:
标签: azure azure-devops azure-keyvault