Misiu
Misiu

Reputation: 4919

How to update a single value in Application settings at runtime in Azure Function App

I'm building my first Function App so if I'm asking a silly question, please keep that in mind :)

I have a need to store some settings at runtime. In standard desktop apps I can easily update app.config by using:

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["UserId"].Value = "myUserId";     
config.Save(ConfigurationSaveMode.Modified);

but in Function App I load config using ConfigurationBuilder:

var config = new ConfigurationBuilder()
    .SetBasePath(context.FunctionAppDirectory)
    .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables()
    .Build();

and there is no way to update that config object. When developing locally I can update local.settings.json, but when running on Azure everything is loaded from Application settings (Environment variables).

My question is: how can I update a single value in Application settings that are associated with my Function App?

I found a similar question but the solution there requires registering app in AAD and it is updating all settings, not just one value.

Upvotes: 3

Views: 1644

Answers (1)

Turbo
Turbo

Reputation: 2551

Take a look at the appsettings.json based approach.

Note that in-built support for appsettings.json files is not supported in Azure functions (yet). There is a github issue that tracks this.

There are few ways to do things at present. An example answer here: Azure Functions, how to have multiple .json config files

There is also a similar solution described at github: https://github.com/Azure/azure-functions-host/issues/4464#issuecomment-494367524

Upvotes: 1

Related Questions