从 Azure 函数的代码中更新应用程序设置

问题描述 投票:0回答:1

我有一个用 C# 编写并在 .NET 8.0 上运行的 Azure 函数。它定期检查我的 Dynamics365 系统中的某些内容。

我已安排此功能每周运行两次,并且我有一个应用程序设置(在我的

local.settings.json
文件中本地配置,并在 Azure 应用程序设置中在线配置),其中包含上次检查的日期。我读出了这个配置值,以了解我需要检查多远的时间。这个效果很好。

现在,我的想法是:当我今天运行检查时,我想更新该配置设置,以便在下次运行时,我再次知道要检查多远。但这似乎比我想象的更具挑战性......

这是我的 Azure 函数的骨架,读出“上次检查日期”设置:

程序.cs:

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

host.Run();

MyFunction.cs:

public class MyFunction
{
    private readonly IConfiguration _config;

    public MyFunction(IConfiguration config)
    {
        _config = config;
    }

    [Function("MyFunction")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get")] HttpRequest req)
    {
        // get config
        string lastCheckDate = _config.GetValue<string>("LastCheckDate");

        // actual function code follows here...
    }
}

我希望能够使用此代码更新该设置:

_config["LastCheckDate"] = DateTime.Today.ToString("yyyy-MM-dd");

或者 - 可能是这个代码:

Environment.SetEnvironmentVariable("LastCheckDate", DateTime.Today.ToString("yyyy-MM-dd"));

但是两次尝试都未能更新我在 Azure 函数托管环境中的应用程序设置。

我有什么想法可以实现这一目标吗?

c# azure-functions .net-8.0
1个回答
0
投票

这可以使用 Azure SDK for .NET 中的 WebSiteResource.UpdateApplicationSettings

 库中的 
Azure.ResourceManager.AppService
 方法来实现。无法从 Function App 框架内原生写入应用程序设置。

© www.soinside.com 2019 - 2024. All rights reserved.