![](/img/trans.png)
[英]Using KeyVault secrets to override appsettings in Azure App Service and locally
[英]Retrieving secrets from KeyVault defined in appsettings
在我的应用程序服务中,在应用程序设置中,如果我添加以下键值,它就可以正常工作。
some:secret -> @Microsoft.KeyVault(VaultName=...)
但是,如果我将该行移至我的 appsettings 文件:
{
"some": {
"secret": "@Microsoft.KeyVault(VaultName=...)"
}
}
然后在我的代码中检索到的“some:secret”值将为空。 以下是我将 appsettings 添加到 configuratoin 的方法(还将ASPNETCORE_ENVIRONMENT
添加到 App Service 的应用设置中):
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>()
.ConfigureAppConfiguration((context, config) =>
{
var environment = context.HostingEnvironment.EnvironmentName;
config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", optional: false);
config.AddJsonFile($"appsettings.{environment}.json", optional: false);
config.AddEnvironmentVariables();
}));
我在这里想念什么?
语法@Microsoft.KeyVault(VaultName=...)
仅在部署在 Azure AppService(或函数应用程序)中时有效,并且该值将像该刀片中的任何其他应用程序设置一样注入:作为 ENV vars。
您的 dotnet 应用程序不会看到(或知道)任何 KeyVault。 秘密的检索由 AppService 处理。 这就是为什么这对于任何其他运行时(如 Java 或节点)也以相同的方式工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.