想知道Azure函数是否可以设置应用程序设置的值。例如,在本地开发或生产中,可以通过将其绑定到类
来读取自定义设置。builder.Services.AddOptions<SomeSettingClass>()
.Configure<IConfiguration>((settings, configuration) =>
{ configuration.GetSection(nameof(SomeSettingClass)).Bind(settings);
});
,显然要使用main函数方法中的Settings。但是,是否可以设置一个值并在下次运行时持久化它?
有很多解决方案,Azure有Azure应用程序配置。它基本上有所有的管道,并提供适当的配置源和提供者插件到ConfigurationRoot
。这使您能够使用IOptionsMonitor
特性获得配置更改的实时更新。也应该有远离编程更新它,但我从来没有尝试过。
然而,我发现这项服务完全定价过高,而且很笨拙。
在这一点上,如果您手头有一些代码,您可以创建自己的ConfigurationSource
和ConfigurationProvider
来指向您喜欢的任何地方,例如CosmosDb容器,并做完全相同的事情。您甚至可以使用触发器和signalR将这些更改发布到任何侦听ConfigurationSource
。
还有各种方法可以通过CLI等在运行时更新函数或应用程序配置(我不确定是否有c#管理库,尽管我猜有某个地方)。然而,据我所知,它们不会是实时的,也没有内置的通知方式。
这让您可以选择只在数据存储¯_(ツ)_/¯
上进行实时查找。这样你就可以按照自己的意愿进行更新和查询,并且可以自然保存。