从 Azure 函数读取设置
Reading settings from a Azure Function
我是 Azure's function 的新手...我创建了一个新的计时器函数(将每 30 分钟触发一次)并且它必须对 URL 执行查询,然后将数据推送到缓冲区..
我完成了
public static void Run(TimerInfo myTimer, TraceWriter log)
{
var s = CloudConfigurationManager.GetSetting("url");
log.Info(s);
}
在我的功能设置中我
我做错了什么?
谢谢
您需要转到平台功能 -> 应用程序设置并将其添加到那里。
在应用程序设置下添加设置。
读取设置可以通过首先在顶部添加:
using System.Configuration;
然后读取设置:
string setting = ConfigurationManager.AppSettings["url"];
其中 url
是您的设置键。 setting
变量将包含您的设置值。
请注意,对于 Azure Functions v2,这不再适用。
以下来自Jon Gallant's blog:
对于 Azure Functions v2,不支持 ConfigurationManager,您必须使用 ASP.NET 核心配置系统:
包括以下 using 语句:
using Microsoft.Extensions.Configuration;
将 ExecutionContext 作为参数包含在内
public static void Run(InboundMessage inboundMessage,
TraceWriter log,
out string outboundMessage,
ExecutionContext context)
获取IConfiguration
根目录
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
并用它来引用 AppSettings 键
var password = config["password"]
在本地调试时,它从 "Values" 关键字下的 local.settings.json
获取设置。在 Azure 中 运行 时,它从“应用程序设置”选项卡获取设置。
您可以这样使用 System.Environment.GetEnvironmentVariable
:
var value = Environment.GetEnvironmentVariable("your_key_here")
只要您在本地或 Azure 上工作,就会获取设置。
推荐方式 — 使用环境变量读取设置
string Secret = System.Environment.GetEnvironmentVariable("Secret");
如果您从本地 PC 或使用 C#
的 Azure Functions 运行,这将非常有效
您不必再执行第 3 步。只需在 Startup.cs 中执行以下操作
`
Startup.cs
public IConfiguration Configuration { get; }
public Startup() { }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
然后在你的代码文件中使用 DI:
`
YourCode.cs
public class SomeWorker : ISomeWorker
{
private readonly IConfiguration _configuration;
public SomeWorker(IConfiguration configuration)
{
_configuration = configuration;
}
public void bool ForKicks()
{
// Get Value
var val = _configuration["SomeValueInLocalSettingsJsonFile"];
}
// Other code here...
}
我是 Azure's function 的新手...我创建了一个新的计时器函数(将每 30 分钟触发一次)并且它必须对 URL 执行查询,然后将数据推送到缓冲区..
我完成了
public static void Run(TimerInfo myTimer, TraceWriter log)
{
var s = CloudConfigurationManager.GetSetting("url");
log.Info(s);
}
在我的功能设置中我
我做错了什么? 谢谢
您需要转到平台功能 -> 应用程序设置并将其添加到那里。
在应用程序设置下添加设置。
读取设置可以通过首先在顶部添加:
using System.Configuration;
然后读取设置:
string setting = ConfigurationManager.AppSettings["url"];
其中 url
是您的设置键。 setting
变量将包含您的设置值。
请注意,对于 Azure Functions v2,这不再适用。 以下来自Jon Gallant's blog:
对于 Azure Functions v2,不支持 ConfigurationManager,您必须使用 ASP.NET 核心配置系统:
包括以下 using 语句:
using Microsoft.Extensions.Configuration;
将 ExecutionContext 作为参数包含在内
public static void Run(InboundMessage inboundMessage, TraceWriter log, out string outboundMessage, ExecutionContext context)
获取
IConfiguration
根目录var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build();
并用它来引用 AppSettings 键
var password = config["password"]
在本地调试时,它从 "Values" 关键字下的 local.settings.json
获取设置。在 Azure 中 运行 时,它从“应用程序设置”选项卡获取设置。
您可以这样使用 System.Environment.GetEnvironmentVariable
:
var value = Environment.GetEnvironmentVariable("your_key_here")
只要您在本地或 Azure 上工作,就会获取设置。
推荐方式 — 使用环境变量读取设置
string Secret = System.Environment.GetEnvironmentVariable("Secret");
如果您从本地 PC 或使用 C#
的 Azure Functions 运行,这将非常有效您不必再执行第 3 步。只需在 Startup.cs 中执行以下操作 `
Startup.cs
public IConfiguration Configuration { get; }
public Startup() { }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
然后在你的代码文件中使用 DI:
` YourCode.cs
public class SomeWorker : ISomeWorker
{
private readonly IConfiguration _configuration;
public SomeWorker(IConfiguration configuration)
{
_configuration = configuration;
}
public void bool ForKicks()
{
// Get Value
var val = _configuration["SomeValueInLocalSettingsJsonFile"];
}
// Other code here...
}