我正在构建我的第一个功能应用程序,所以如果我问一个愚蠢的问题,请记住这一点:)
我需要在运行时存储一些设置。
在标准桌面应用中,我可以轻松更新app.config
通过使用:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["UserId"].Value = "myUserId";
config.Save(ConfigurationSaveMode.Modified);
但是在Function App中,我使用ConfigurationBuilder
加载配置:
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
,并且无法更新该配置对象。
在本地进行开发时,我可以更新local.settings.json,但是在Azure上运行时,所有内容都将从Application settings
(环境变量)加载。
我的问题是:如何在与我的Function App相关的应用程序设置中更新单个值?
我找到了similar question,但是那里的解决方案要求在AAD中注册应用,并且它正在更新所有设置,而不仅仅是一个值。
答案 0 :(得分:0)
看看基于appsettings.json的方法。
请注意,Azure函数尚不支持对appsettings.json文件的内置支持。有github issue对此进行跟踪。
目前做事的方法很少。这里有一个示例答案: Azure Functions, how to have multiple .json config files
在github上也描述了类似的解决方案: https://github.com/Azure/azure-functions-host/issues/4464#issuecomment-494367524