【问题标题】:Cron Job to trigger AWS Lambda not working as expected用于触发 AWS Lambda 的 Cron 作业未按预期工作
【发布时间】:2019-08-19 05:04:36
【问题描述】:

我想在每个月的 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


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是为 AWS 测试 cron 的理想场所,应标记为答案。
    【解决方案2】:

    根据aws docs,格式为cron(Minutes Hours Day-of-month Month Day-of-week Year)

    所以你应该使用这个:

    0 - 小时的第 0 分钟
    10- 一天中的小时。所以,10:00
    15- 每月的第 15 天
    * - 每月执行一次
    ? - 无论星期几
    *- 每年

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

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 2013-05-01
      • 1970-01-01
      • 2014-11-26
      • 2013-07-19
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多