通过应用程序设置配置Azure函数计时器

问题描述:

我正在使用Azure函数计时器作业,我需要从appsettings获取cron表达式。请让我知道,我如何从Azure功能中的appsetting中获取价值。我想我的运行从上午9:00开始蔚蓝的功能,下午12:00进行,每30分钟\通过应用程序设置配置Azure函数计时器

{ 
"disabled": false, 
"bindings": [ 
    { 
    "name": "timerInfo", 
    "type": "timerTrigger", 
    "direction": "in", 
    "schedule": "0 * * * * *" 
    } 
] 
} 
+0

你尝试过什么?它使用cron语法,可能从那里开始(https://crontab-generator.org/) – Mark

设置日程为"schedule": "%EmailScheduleTriggerTime%",然后在appsetting.json可以设置EmailScheduleTriggerTime值"0 30 9-12 * * *"

{ 
    "IsEncrypted": false, 
    "Values": { 
    "EmailScheduleTriggerTime": "0 30 9-12 * * *", //Run every 30 minutes from 9:00 to 12:00 

    }, 
    "ConnectionStrings": { 
    "DefaultConnection": "" 
    } 
} 

我们可以使用“schedule": "0 */30 9-12 * * *",关于Azure的功能定时器触发请参阅蔚蓝official document更多细节。

时间表的值是一个CRON表达式包含这些六个字段:

{第二} {分钟} {小时} {天} {月} {星期几-}

注:

使用cron表达式中使用的默认时区是协调世界时(UTC)。有基于另一个时区的CRON表达式,如果您使用的是VS2017的功能和工具在.NET项目定义你的函数(而不是直接在名为WEBSITE_TIME_ZONE

你的函数的应用程序创建一个新的应用程序设置在Azure门户网站),你可以从AppSettings使用%语法拿起间隔:

[FunctionName("MyTimerFunction")] 
public static void Run([TimerTrigger("%TimerInterval%")] TimerInfo myTimer, TraceWriter log, .. 

然后在你的应用程序设置指定所需的CRON格式间隔如。在local.settings.json

{ 
    "Values" : { 
     "TimerInterval" : "0 30 9-12 * * *" 
    } 
} 
+0

为什么downvotes?如果有一些反馈,很乐意改进这个答案。 –

+0

你只是答案的一部分使用0 30 9-12 * * *,我已编辑并发送评论。 –