按计划运行 Azure 函数

已完成

以设定的间隔执行一段逻辑是很常见的。 想象一下,如果你是博客所有者,并且注意到你的订阅者没有阅读你最近的帖子。 你认为最好的方法是每周发送一封电子邮件,提醒他们查阅你的博客。 你可以在 Azure 中创建一个带计时器触发器的函数应用来实现这个逻辑,让它每周调用一次你的函数。

什么是计时器触发器?

计时器触发器是以一致的间隔执行函数的触发器。 若要创建计时器触发器,需要提供两条信息。

  1. “时间戳参数名称”,它只是代码中用于访问触发器的标识符。
  2. “日程安排”,它是一个 CRON 表达式,用于设置计时器的间隔。

什么是 CRON 表达式?

CRON 表达式是一个字符串,由六个表示一组时间的字段组成。

这六个字段在 Azure 中的顺序是:{second} {minute} {hour} {day} {month} {day of the week}

例如,用于创建每五分钟执行一次的触发器的 CRON 表达式如下所示:0 */5 * * * *

起初,这个字符串可能看起来很混乱。 当我们深入研究 CRON 表达式时,我们将回过头来分解这些概念。

若要构建 CRON 表达式,需要对某些特殊字符有一个基本了解。

特殊字符 含义 示例
* 选择字段中的每个值 星期几字段中的星号“*”表示“每天”。
, 分隔列表中的项目 星期几字段中的逗号“1,3”表示星期一(第 1 天)和星期三(第 3 天)。
- 指定范围 小时字段中的连字符“10-12”表示包括 10、11 和 12 点的范围。
/ 指定增量 分钟字段中的斜杠“*/10”表示每 10 分钟增加一次。

现在,我们返回查看原始 CRON 表达式示例。 我们来尝试通过逐字段分解更好地理解它。

0 */5 * * * *

第一个字段表示秒。 此字段支持的值为 0-59。 因为该字段包含零,所以它选择第一个可能的值,即 1 秒。

“第二个字段”表示分钟。 值“*/5”包含两个特殊字符。 首先,星号 (*) 表示“选择字段中的每个值”。由于此字段表示分钟,因此可能的值为 0 - 59。 第二个特殊字符是表示增量的斜杠 (/)。 将这些字符组合在一起时,表示对于 0-59 的所有值,每五个值进行一次选择。 更简单的说法就是“每五分钟一次。”

其余 4 个字段用数字形式表示 24 小时制中的小时、月份中的某一天、12 个月一年中的月份和 7 天一周的某一天。 这些字段的星号表示选择每个可能的值。 在此示例中,我们选择“每个月每天的每个小时。”

将所有字段放在一起时,表达式解读为“每个月每天每小时每五分钟的第一秒”。

如何创建计时器触发器

可在 Azure 门户中创建计时器触发器。 在你的函数应用中,从触发器模板列表中选择“计时器触发器”。 输入想要执行的逻辑。 提供“时间戳参数名称”和“CRON 表达式”。

在本模块中,我们重点介绍如何在门户中创建触发器,但你也可以使用 Core Tools、Visual Studio 或 Visual Studio Code 以编程方式创建触发器。

计时器触发器按照一致的时间表调用函数代码。 要定义计时器触发器的计划,我们构建一个 CRON 表达式,它是一个表示一组时间的字符串。