我真的很难找到如何从Azure函数中创建的实例访问应用程序设置。
我有以下代码...
namespace ThingServiceFunctionApp
{
public static class RoleFunctions
{
[FunctionName("GetThings")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "roles")]HttpRequest req, ILogger log)
{
return await FunctionApp.GetFunction<IGetThingsFunction>().RunAsync(req, log).ConfigureAwait(false);
}
public static class FunctionApp
{
private static readonly IFunctionFactory FuncFactory = new FunctionFactory(new Startup());
public static IFunction GetFunction<TFunction>() where TFunction : IFunction
{
return FuncFactory.Create<TFunction>();
}
}
public class Startup : IStartup
{
private IConfiguration Configuration { get; }
public Startup()
{
Configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}
public IServiceCollection ConfigureServices(IServiceCollection services)
{
services
.AddSingleton<IThingService, ThingService>()
.AddTransient<IGetThingsFunction, GetThings>();
return services;
}
}
}
}
如何从ThingService或GetThings函数的Configuration中访问值?
不相关,但是仅供参考,我已经添加了对DI的支持(代码未显示)-因此,.AddSingleton等。
谢谢!
答案 0 :(得分:1)
在我们的项目中,我们将变量从本地配置文件添加到Azure门户中的“应用程序设置”中。
像这样创建对象:new ConfigurationBuilder()。AddEnvironmentVariables()。Build();
然后像往常一样检索它们,即Configuration [“ Key”];
答案 1 :(得分:1)
要访问Azure Function中的本地应用程序设置(无论是在Azure上还是在本地调试中),我们可以执行以下操作:
public static string GetEnvironmentVariable(string name)
{
return name + ": " +
System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
}
更多信息供您参考:Environment variables