【发布时间】:2019-06-11 20:01:07
【问题描述】:
在将 Azure 函数从 v1 移植到 v2 时,配置管理器用于读取 local.settings.json 的方式发生了变化。
之前,我使用下面的代码来启用函数实例之间的redis连接池:
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,它只在函数运行时可用,所以我们不能创建一个在所有函数之间共享的静态类。是否可以在 Azure Functions v2 中静态读取 app.settings.json?
【问题讨论】:
标签: c# azure .net-core azure-functions