如何在运行时在Azure Function App中更新应用程序设置中的单个值

时间:2019-08-14 09:07:49

标签: c# azure .net-core azure-function-app

我正在构建我的第一个功能应用程序,所以如果我问一个愚蠢的问题,请记住这一点:)

我需要在运行时存储一些设置。 在标准桌面应用中,我可以轻松更新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中注册应用,并且它正在更新所有设置,而不仅仅是一个值。

1 个答案:

答案 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