使用Azure Key Vault中的秘密替换VSTS JSON变量

时间:2017-12-12 15:15:39

标签: azure asp.net-core azure-devops azure-pipelines-release-pipeline azure-keyvault

我正在Visual Studio Team Services中进行Azure应用服务部署(ASP.NET Core 2.0 Web Api),并且想要替换appsettings.json中的一些值,所以我读了https://docs.microsoft.com/en-us/vsts/build-release/tasks/transforms-variable-substitution#jsonvarsubs,但他们谈到了通过将名称与句点(。)连接来替换文件的嵌套级别中的值。

问题是您无法在Azure密钥保管库中使用句点(。)。

有没有人知道如何使用Azure Key Vault中的秘密在appsettings.json文件中替换嵌套级别的变量?

2 个答案:

答案 0 :(得分:2)

我最终使用了' ConnectionStrings - 数据库'作为Azure Key Vault中的密钥。

然后添加一个'变量组'在VSTS(https://docs.microsoft.com/en-us/vsts/build-release/concepts/library/variable-groups)中链接到Azure Key Vault。

并添加一个'流程变量'名为ConnectionStrings.Database的值为' $(ConnectionStrings - Database)。

这样就取代了“过程变量”的价值。使用Azure Key Vault中的值,它使用' Process Variable'的名称。在appsettings.json中替换。

答案 1 :(得分:0)

[从评论转到回答]我使用ARM模板来设置来自keyvault的appsettings。创建一个ARM模板,用于配置Web应用程序并从keyvault读取值,并使用这些值来设置appsettings。您可以通过.parameters.json文件从keyvault读取它们或使用嵌套模板。通过这种方式,您可以继续使用句点(。)在appsettings中,并在keyvault中使用不同的键名。