在function.json

时间:2018-07-06 07:46:24

标签: c# azure azure-functions azure-functions-runtime

我具有带有计时器触发器的Azure功能。当我出于调试目的在本地启动项目时,我希望函数立即执行。可以通过设置runOnStartup属性来完成。

我无法将其保留在生产环境中,因为它会使触发器在每次安排时触发两次,因此我尝试使用适当的设置。

function.json的摘要:

{
  "schedule": "%TimerSchedule%",
  "runOnStartup": %TimerRunOnStartup%,
  "name": "timer",
  "type": "timerTrigger",
  "direction": "in"
}

local.settings.json的摘要:

"TimerSchedule": "0 */5 * * * *",
"TimerRunOnStartup": true,

按预期方式从设置文件中读取CRON表达式,但是在布尔值的情况下,function.json的解析失败,并出现以下错误:

  

解析值%时遇到意外字符。路径“ bindings [0] .runOnStartup”,第6行,位置22。

是否可以在function.json中参数化布尔值?

1 个答案:

答案 0 :(得分:1)

AFAIK,这是不可能的。 "%TimerSchedule%"表示一个字符串,以便可以解析百分号并从应用程序设置(即本地local.settings)中获取值。

尽管runOnStartUp应该是常量布尔值,但是函数运行时只能识别true / false,因此%无效。我们也不能使用"%runOnStartUp%",因为String无法识别为有效的布尔值。