在我的應用程式服務中,在應用程式設定中,如果我添加以下鍵值,它就可以正常作業。
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();
}));
我在這里想念什么?
uj5u.com熱心網友回復:
該語法@Microsoft.KeyVault(VaultName=...)僅在部署在 Azure AppService(或 Function App)中時有效,并且該值將像該刀片中的任何其他應用程式設定一樣注入:作為 ENV vars。
您的 dotnet 應用程式不會看到(或知道)任何 KeyVault。秘密的檢索由 AppService 處理。這就是為什么這對于任何其他運行時(如 Java 或節點)也以相同的方式作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480709.html
