You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions计时器触发器自定义设置添加位置及读取方法

Azure Functions 自定义设置配置与读取

一、自定义设置该放哪个文件?

  • local.settings.json:仅用于本地开发调试,把你的自定义键值对(比如数据库连接串、API密钥)放到这个文件的Values节点里即可。这个文件不会被部署到Azure,本地运行函数时会优先读取这里的配置。
  • host.json:用于配置函数应用的全局运行规则,比如日志级别、批量处理上限、超时时间这类全局行为,不要把业务相关的自定义设置放在这里。
  • 部署到Azure之后,直接在Azure门户的「配置」→「应用程序设置」中添加对应的键值对,和local.settings.json里的内容对应上即可。

二、没有Program.cs/Startup.cs时怎么读设置?

不管你的函数是进程内还是隔离模式(无这两个文件一般是进程内旧模板),以下几种方法都可以读取自定义设置:

1. 依赖注入(推荐)

在函数类的构造函数中注入IConfiguration,之后直接读取配置:

public class MyFunction
{
    private readonly IConfiguration _config;

    public MyFunction(IConfiguration config)
    {
        _config = config;
    }

    [FunctionName("MyFunction")]
    public async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
    {
        string myCustomSetting = _config["MyCustomSetting"];
        log.LogInformation($"读取到自定义设置:{myCustomSetting}");
    }
}

2. 直接读取环境变量

local.settings.json中Values节点的内容会被加载为环境变量,因此可以直接用Environment.GetEnvironmentVariable读取:

[FunctionName("MyFunction")]
public async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
{
    string myCustomSetting = Environment.GetEnvironmentVariable("MyCustomSetting");
    log.LogInformation($"读取到自定义设置:{myCustomSetting}");
}

3. 配置绑定(特定场景使用)

如果想直接把设置绑定到函数参数上,可以使用[Configuration]属性:

[FunctionName("MyFunction")]
public async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, 
                      [Configuration("MyCustomSetting")] string myCustomSetting,
                      ILogger log)
{
    log.LogInformation($"读取到自定义设置:{myCustomSetting}");
}

内容的提问来源于stack exchange,提问作者Lamar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:50:17