定时器触发器变量

时间:2021-07-02 18:30:43

标签: c# azure azure-webjobs

问题: 我有一个 azure webjob,这个 webjob 执行外部数据源的同步。在这个 webjob 中,我有以下 ExecuteAsync 方法,并且有一个 TimerTrigger 属性,它是带有 CRON 时间的硬编码。

[Singleton]
public async Task ExecuteAsync([TimerTrigger("0 0 * * * *", RunOnStartup = true)] TimerInfo _,
    ILogger logger, CancellationToken cancellationToken)

我想让这个 CRON 时间可配置,这样我就不需要进去更改和部署它。如果我需要更改 CRON 时间,我可以在 Azure App 配置中更改它。

我尝试过的:我尝试了以下

[Singleton]
public async Task ExecuteAsync([TimerTrigger("%AMSSyncTime%", RunOnStartup = true)] TimerInfo _,
    ILogger logger, CancellationToken cancellationToken)

在我的配置 appsettings.json 中,我有以下内容:

  "Values": {
    "AMSSyncTime": "0 0 * * * *",
  },

但我收到以下异常:InvalidOperationException: '%AMSSyncTime%' does not resolve to a value.

我怎样才能使这个配置?提前致谢

1 个答案:

答案 0 :(得分:0)

你有 function.json 文件吗?您需要在其中指定绑定。

{ "scriptFile": "test.js", "bindings": [ { "type": "timerTrigger", "direction": "in", "AMSSyncTime": "0 0 * * * *" } ] }

您可以通过 DashleenBhandari-MSFT

参考这个答案