gpt4 book ai didi

azure-webjobs - Azure Webjob 3.0 - 无法从计时器函数中的 appsettings.json 读取配置变量

转载 作者:行者123 更新时间:2023-12-05 07:23:45 26 4
gpt4 key购买 nike

我很难从 Azure Webjob SDK 3.0 项目中的 appsettings.json 文件中读取任何变量。

我正在使用:

  • Microsoft.Azure.WebJobs.Core 版本="3.0.6"
  • Microsoft.Azure.WebJobs.Extensions version="3.0.2"
  • Microsoft.Extensions.Configuration version="2.2.0"

我试过以下方法:

System.Configuration.ConfigurationManager.AppSettings["ApiUrl"]

但是这会返回 null 并且无法读取。我已经检查了关于 SO 的文档和其他问题,但目前它就像大海捞针。

程序.cs

static async Task Main(string[] args)
{
var builder = new HostBuilder()
.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices()
.AddAzureStorage()
.AddTimers();

b.UseHostId(Environment.UserName.ToLowerInvariant());
})
.ConfigureAppConfiguration((b, c)=>
{
var env = b.HostingEnvironment;
c.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
c.AddCommandLine(args);
c.AddEnvironmentVariables();
c.Build();
})
.ConfigureLogging((context, b) =>
{
b.SetMinimumLevel(LogLevel.Debug);
b.AddConsole();

string appInsightsKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(appInsightsKey))
{
b.AddApplicationInsights(o => o.InstrumentationKey = appInsightsKey);
}
})
.UseConsoleLifetime();

var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}

函数.cs

public static async Task ProcessAsync([TimerTrigger("0 */3 * * * *")] TimerInfo timerInfo, ILogger log)
{
//I want to read my appsettings.json here!
}

appsettings.json 示例:

{
"AzureWebJobsDashboard": "################",
"AzureWebJobsStorage": "################",
"ApiUrl": "#############",
"APPINSIGHTS_INSTRUMENTATIONKEY": "############"
}

最佳答案

忽略这个 - 仍然不起作用

刚想通了!在我的 Functions 类开始时初始化它为我修复了它:

private readonly IConfiguration _configuration;
public Functions(IConfiguration configuration)
{
_configuration = configuration;
}

public static async Task ProcessAsync([TimerTrigger("0 */3 * * * *")] TimerInfo timerInfo, ILogger log)
{
var conf = _configuration["ApiUrl"];
}

这有效,但会导致 WebJob 作为一个函数运行。在日志中的 WebJob 函数父级下,每次运行都应分解为每个单独的运行。令人难以置信的沮丧。

如果有人可以提供帮助,请告诉我。

关于azure-webjobs - Azure Webjob 3.0 - 无法从计时器函数中的 appsettings.json 读取配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55808262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com