При переносе функции Azure с v1 на v2 меняется способ использования менеджера конфигурации для чтения local.settings.json.
Ранее я использовал следующий код для включения повторного пулирования соединений между экземплярами функций:
public static class Redis
{
/// <summary>
/// Initializes the REDIS connection.
/// </summary>
private static readonly Lazy<ConnectionMultiplexer> LazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
return ConnectionMultiplexer.Connect(ConfigurationManager.AppSettings["CacheConnection"]);
});
public static IDatabase Database => LazyConnection.Value.GetDatabase();
}
Однако в v2 ConfigurationManager больше не доступен, и мы должны использовать что-то вроде:
new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
Однако, поскольку для этого требуется context
, который доступен только во время выполнения функции, мы не можем создать статический класс, общий для всех функций.Можно ли статически читать файл app.settings.json в функциях Azure v2?