我具有带有计时器触发器的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
中参数化布尔值?
答案 0 :(得分:1)
AFAIK,这是不可能的。 "%TimerSchedule%"
表示一个字符串,以便可以解析百分号并从应用程序设置(即本地local.settings)中获取值。
尽管runOnStartUp
应该是常量布尔值,但是函数运行时只能识别true / false,因此%
无效。我们也不能使用"%runOnStartUp%"
,因为String无法识别为有效的布尔值。