从Azure功能读取设置

时间:2017-04-22 07:02:42

标签: azure

我不熟悉Azure的功能......我创建了一个新的计时器功能(将每30分钟触发一次),它必须对网址执行查询,然后推送缓冲区上的数据..

我已经完成了

public static void Run(TimerInfo myTimer, TraceWriter log)
{


 var s = CloudConfigurationManager.GetSetting("url");

 log.Info(s);

}

在我的功能设置中我已经

enter image description here

我做错了什么? 感谢

4 个答案:

答案 0 :(得分:36)

请注意,对于Azure Functions v2,这不再成立。 以下来自Jon Gallant's blog

对于Azure Functions v2,不支持ConfigurationManager,并且您必须使用ASP.NET Core配置系统:

  1. 包括以下使用声明

    using Microsoft.Extensions.Configuration;
    
  2. 将ExecutionContext包含为参数

    public static void Run(InboundMessage inboundMessage, 
        TraceWriter log,
        out string outboundMessage, 
        ExecutionContext context)
    
  3. 获得IConfiguration

    var config = new ConfigurationBuilder()
        .SetBasePath(context.FunctionAppDirectory)
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();
    
  4. 并使用它来引用AppSettings键

    var password = config["password"]
    

在本地调试时,它从local.settings.json的“值”关键字下获取设置。在Azure中运行时,它将从“应用程序设置”选项卡中获取设置。

答案 1 :(得分:13)

您需要转到平台功能 - >应用程序设置并将其添加到那里。

Application settings

Settings

添加应用设置下的设置。

首先在顶部添加此内容即可完成阅读设置:

using System.Configuration;

然后阅读设置:

string setting = ConfigurationManager.AppSettings["url"];

url是您的设置键。 setting变量将包含您的设置值。

答案 2 :(得分:11)

您可以像这样使用System.Environment.GetEnvironmentVariable

var value = Environment.GetEnvironmentVariable("your_key_here")

无论您在本地还是在Azure上工作,这都会获取设置。

答案 3 :(得分:0)

推荐方式——使用环境变量读取设置

string Secret = System.Environment.GetEnvironmentVariable("Secret");

如果您从本地 PC 或使用 C# 的 Azure Functions 运行,这将非常有效

enter image description here

enter image description here