#c# #azure-functions #.net-5
Вопрос:
Следующий код, похоже, не выбирает значения конфигурации из файла host.json в переменную BuildConfig. Тот же шаблон отлично работает в Asp.Net Ядро. Можете ли вы сказать, в чем может быть проблема? Я не могу войти в код, чтобы увидеть значение, потому что VS 2019 зависает из-за проблемы, которую уже отслеживает Microsoft.
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureAppConfiguration((hostingContext, configBuilder) =>
{
var builtConfig = configBuilder.Build();
int configRefreshSeconds = int.TryParse(builtConfig["ConfigRefreshSeconds"], out configRefreshSeconds) ? configRefreshSeconds : 600;
// add keyvault
configBuilder.AddAzureKeyVault(new AzureKeyVaultConfigurationOptions
{
Vault = $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/",
ReloadInterval = TimeSpan.FromSeconds(configRefreshSeconds),
Client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(
new AzureServiceTokenProvider().KeyVaultTokenCallback))
});
})
.ConfigureServices((hostBuilderContext, services) => {
// Get IConfiguration
var configuration = hostBuilderContext.Configuration;
// Add DI
})
.Build();
Комментарии:
1. Какое значение вы пытаетесь прочитать из файла host.json ? Насколько я понимаю, host.json-это скорее мета-файл конфигурации, используемый средой выполнения функций. Вероятно, вам не следует смешивать там настройки, связанные с вашим приложением. Вы всегда можете добавить другой файл json (например, myappsettings.json) в качестве источника конфигурации с помощью
IConfigurationBuilder.AddJsonFile
метода. В prod вы определите эту запись конфигурации как параметры приложения, чтобы она была безопасной.