我正在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文件中替换嵌套级别的变量?
答案 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中使用不同的键名。