在 function.json 中参数化 runOnStartup

Parametrize runOnStartup in function.json

我有一个带有计时器触发器的 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 的解析失败并在布尔值的情况下出现以下错误:

Unexpected character encountered while parsing value: %. Path 'bindings[0].runOnStartup', line 6, position 22.

有没有办法在 function.json 中参数化布尔值?

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

虽然runOnStartUp应该是一个布尔常量,但是只有true/false可以被函数运行时识别,所以%是无效的。我们也不能使用 "%runOnStartUp%",因为 String 未被识别为有效的布尔值。