为什么此cron表达式在AWS上不正确?

时间:2019-03-01 11:41:12

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

我们正在尝试在AWS上使用lambda,该lambda计划于每个星期一上午9:45运行。

我们的cron表达式为:

cron(45 9 ? * MON *)

AWS文档明确声明,您有六个必填字段(您可以忽略秒数)-在此处查看文档:{​​{3}}

但是,部署lambda会导致错误:

An error occurred: ConsumerEventsRuleSchedule13 - Parameter ScheduleExpression is not valid. 
(Service: AmazonCloudWatchEvents; Status Code: 400; Error Code: ValidationException)

通过在表达式中增加几秒钟,我设法解决了该问题:

cron(0 45 9 ? * MON *)

但是,我仍然感到困惑,为什么原始表达式无效? AWS文档(以上链接)甚至为每个工作日(星期一至星期五)运行的任务提供了一个工作表达式: cron(0 18 ? * MON-FRI *) 看起来就像我们最初尝试使用的那样,减去了工作日范围(因为我们想要一个特定的工作日)。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

在部署之前您是否尝试过sam package?您可能使用了cron错误的旧代码...试试sam package --s3-bucket your-bucket-name --output-template-file packaged.yaml