Azure Functions独立工作者模式下如何绑定触发器参数到appsettings.json
Azure Functions独立工作者模式下配置源读取问题
在进程内函数模式中,可将appsettings.json作为自定义配置源,用来解析触发器参数。示例如下,TimerTrigger可从appsettings.json中读取ScheduleTriggerTime参数:
[FunctionName("Function1")] public async Task Run([TimerTrigger("%ScheduleTriggerTime%")]TimerInfo myTimer)
迁移至独立工作者模式后,发现无法从appsettings.json绑定参数,仅能通过local.settings.json实现。已将appsettings.json添加至配置,尝试从中获取TimerTrigger的ScheduleTriggerTime设置,但启动应用时抛出错误:
Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.Function1'. Microsoft.Azure.WebJobs.Host: '%ScheduleTriggerTime%' does not resolve to a value.
相关代码
Program.cs
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; var host = new HostBuilder() .ConfigureFunctionsWebApplication() .ConfigureAppConfiguration((hostContext, configurationBuilder) => { configurationBuilder .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile($"appsettings.json") .AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); }) .Build(); host.Run();
Function1.cs
using Microsoft.Azure.Functions.Worker; namespace FunctionApp4 { public class Function1 { [Function("Function1")] public void Run([TimerTrigger("%ScheduleTriggerTime%")] TimerInfo myTimer) { } } }
appsettings.json
{ "ScheduleTriggerTime": "0 */1 * * * *" }
请问这是独立模式下的有意变更,还是我遗漏了某些配置步骤,导致无法从appsettings.json解析参数?
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

