Cron Job触发AWS Lambda无法按预期工作

时间:2019-03-28 12:14:31

标签: amazon-web-services cron aws-lambda serverless cron-task

我想在每月15号触发我的AWS lambda函数,但是每30分钟触发一次。我在Serverless.yml中的功能是

monthlyTbAlert:
    warmup: true
    handler: handlers/monthly-tbalert/index.monthlyTbAlert
    timeout: 60
    events:
      - schedule: cron(0 0 10 15 1/1 ? *)
        enabled: true

2 个答案:

答案 0 :(得分:2)

根据aws docs,格式为cron(分钟小时,星期几,月份,星期几)

所以您应该使用此:

0-时数0分钟
10-一天中的小时。所以10:00
15-每月的15号
*-每月执行一次
?-不管是星期几
*-每年

因此,您的cron表达式应该为0 10 15 * ? *,以便在每月的第15天上午10:00执行cron

答案 1 :(得分:1)

如果要在部署cron表达式之前对其进行调试,则可以转到CloudWatch-> Rules并在其中进行测试。如果您不确定会发生什么,这是一个非常有用的游乐场。

如果我们获取@Stargazer答案中提供的表达式(顺便说一句,它非常准确)并将其粘贴到CloudWatch Rules中,我们可以看到何时将发生下一个触发器:

enter image description here

但是,通过使用您的,我们看不到任何事件显示。如果您说它每30分钟运行一次,则说明CloudWatch规则中可能存在一个错误,该错误每30分钟触发一次无效表达式:

enter image description here