Cron Job触发AWS Lambda无法正常工作

问题描述 投票:0回答:2

我想在每个月的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
amazon-web-services cron aws-lambda serverless cron-task
2个回答
2
投票

根据aws docs,格式为cron(分钟时间日月份日的一周)

所以你应该使用这个:

0 - 小时0分钟 10-当天的小时数。所以,10点 15-本月15日 * - 每个月执行一次 ? - 无论一周中哪一天 *-每年

所以,你的cron表达式应该是0 10 15 * ? *要在每个月的15日执行你的cron上午10:00


1
投票

如果要在部署cron表达式之前调试它们,可以转到CloudWatch - > Rules并在那里进行测试。如果您不确定可能发生的事情,这是一个非常有用的游乐场。

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

enter image description here

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.