如何在Portal C#应用程序功能的Azure函数中访问应用程序设置?

时间:2019-09-24 20:19:47

标签: c# azure configuration

尝试从门户网站中创建的Azure功能访问应用程序设置。

找不到ConfgiurationBuilder命名空间的当前问题。

我最终得到了以下代码,对于应该鼓励使用的东西来说似乎有些冗长。

到目前为止,我发现的大多数资源都仅涉及Visual Studio使用启动绑定构建的Azure函数。

.net核心c#函数。 版本2功能。

首先-功能应用程序中的设置设置平台设置/常规设置/配置

然后输入功能代码:

  • 包含System.Configuration.ConfigurationManager的软件包
  • 使用为Microsoft.Extensions.Configuration添加的内容;
  • 将ExectuionContext上下文添加为参数

代码看起来像这样

#r "Newtonsoft.Json"
#r "System.Configuration.ConfigurationManager"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using Microsoft.Extensions.Configuration;

public static async Task<string> Run(HttpRequest req, ILogger log,
    ExecutionContext context) {

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

    return app_setting;
}

如上所述,它具有的问题

  • 尽管#r ConfigurtaionManager没有错误,但由于未找到ConfigurationBuilder命名空间而无法构建
  • 看起来有点长。如果使用启动/依赖关系,则可以隐藏。这是在门户网站中完成的,因此可能存在一些依赖关系吗?

3 个答案:

答案 0 :(得分:1)

完成功能应用程序并将其更新到门户后。 local.setting.json的值将在Azure门户中已发布功能应用程序的“应用程序设置”选项卡下(请参见图片)。因此,在门户网站上,如果要更改应用程序设置,则需要对“应用程序设置”进行操作。

enter image description here enter image description here

因此,如果您想访问应用程序设置,可以使用以下方法:

var environmentmyDesiredKey = Environment.GetEnvironmentVariable("MyAppSetting");

获取在“应用程序设置”中设置的'MyAppSetting'。(请不要忘记using System.Configuration;

enter image description here

事情在我这边起作用。如果您还有其他问题,请告诉我。

答案 1 :(得分:1)

请尝试

Environment.GetEnvironmentVariable("appSettingName", EnvironmentVariableTarget.Process);

答案 2 :(得分:0)

您可以像这样使用 GetEnvironmentVariable

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using Microsoft.Extensions.Configuration;

public static async Task<string> Run(HttpRequest req, ILogger log) {

var app_setting = System.Environment.GetEnvironmentVariable("MyAppSetting");

return app_setting;

}