本文介绍如何在函数计算控制台创建每5分钟触发一次函数执行的定时触发器。

前提条件

创建触发器

  1. 登录函数计算控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,单击服务及函数
  4. 服务列表区域,单击目标服务。然后在函数列表页签,单击目标函数名称。
  5. 单击触发器页签,然后单击创建触发器
    create_trigger
  6. 创建触发器面板,填写相关信息,然后单击确定
    参数 操作 本文示例
    服务类型 选择定时触发器 定时触发器
    触发器名称 填写自定义的触发器名称。 my_trigger
    触发版本/别名 填写触发器版本,默认值为LATEST。详细信息,请参见版本简介 LATEST
    时间配置 根据需要选择配置方式:
    • 时间间隔:在文本框输入正整数n,表示每n分钟触发一次函数执行。
    • Cron表达式:在文本框中输入Cron表达式,到达指定的时间点触发一次函数执行。
    时间间隔:5分钟
    启动触发器 打开启动触发器开关。 打开开关
    触发消息 输入自定义的参数。该触发消息将会作为event中payload的值,关于event格式的详细说明,请参见event
    {awesome-fc}
    时间表达式
    • Cron表达式

      Cron表达式默认以UTC时间运行,即北京时间减去8个小时。标准的Cron表达式格式为:Seconds Minutes Hours Day-of-month Month Day-of-week

    • 时区表达式

      如果您的任务需要按照特定时区运行,可以通过CRON_TZ指定,例如在北京时间每个月一号的凌晨四点触发函数执行,则可以使用CRON_TZ=Asia/Shanghai 0 0 4 1 * *。不同地域的时区表达式存在差异,请以实际情况为准。

      说明

      如果您使用的时区存在夏令时和冬令时的区分,在夏令时和冬令时切换的过程中可能会出现重复执行或少执行的情况,建议将执行时间设置在夏令时和冬令时切换的时间段外。

    下表是时间表达式常用示例。例如您希望函数计算的函数在北京时间12:00被执行,对应的Cron表达式为0 0 4 * * *,时区表达式为CRON_TZ=Asia/Shanghai 0 0 12 * * *
    示例 Cron表达式 时区表达式
    每天12:00调度函数 0 0 4 * * * CRON_TZ=Asia/Shanghai 0 0 12 * * *
    每天12:30调度函数 0 30 4 * * * CRON_TZ=Asia/Shanghai 0 30 12 * * *
    每小时的26分,29分,33分调度函数 0 26,29,33 * * * * CRON_TZ=Asia/Shanghai 0 26,29,33 * * * *
    周一到周五的每天12:30调度函数 0 30 4 ? * MON-FRI CRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRI
    周一到周五的每天12:00~14:00每5分钟调度函数 0 0/5 4-6 ? * MON-FRI CRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRI
    一月到四月每天12:00调度函数 0 0 4 ? JAN,FEB,MAR,APR * CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR *
    Cron表达式的字段说明如下:
    • 字段说明
      字段名 取值范围 允许的特殊字符
      Seconds 0~59
      Minutes 0~59 , - * /
      Hours 0~23 , - * /
      Day-of-month 1~31 , - * ?/
      Month 1~12或JAN~DEC , - * /
      Day-of-week 0~6或MON~SUN , - * ?
    • 特殊字符说明
      字符名 定义 示例
      * 表示任一或每一。 Minutes字段中:0表示每分钟的0秒都执行。
      , 表示列表值 Day-of-week字段中:MON,WED,FRI表示星期一,星期三和星期五。
      - 表示一个范围 Hours字段中:10-12表示UTC时间从10点到12点。
      ? 表示不确定的值 与其他指定值一起使用。例如,如果指定了一个特定的日期,但您不在乎它是星期几,那么在Day-of-week字段中就可以使用。
      / 表示一个值的增加幅度,n/m表示从n开始,每次增加m。 minute字段中:3/5表示从3分钟开始,每隔5分钟执行一次。
    在触发器列表中可以看到创建成功的触发器。create-timer-trigger

后续步骤

  1. 编写函数
  2. 调试函数