参数ScheduleExpression无效

时间:2016-09-14 04:03:17

标签: cron aws-lambda amazon-cloudwatch

我正在尝试设置Cloudwatch预定事件,但我的cron表达似乎无效,但我无法弄清楚原因。

我的cron表达是:

cron(5,15,25,35,45,55 * * * *)

我希望它能在每天每小时的第5天,第15天,第25天,第35天,第45天和第55分钟运行。这似乎与此处的{AWS {3}}的AWS预定事件文档一致。

以上文档允许用0到59之间的逗号分隔值表示分钟,并用*通配符反映小时,日期(或星期几),月份和年份以反映ALL。

我尝试在Lambda控制台上设置cron表达式(创建函数并选择Cloudwatch Schedule Event时),并在Cloudwatch控制台中设置cron表达式(以及选择触发器的目标)。两者都不适用于我的自定义cron表达式。

我尝试了以下内容:

5,15,25,35,45,55 * * * *
5,15,25,35,45,55 * ? * *
cron(5,15,25,35,45,55 * * * *)
cron(5,15,25,35,45,55 * ? * *)

每次我收到错误消息称ScheduleExpression无效。但是,我可以使用premade rate()表达式之一。

如何使用自己的自定义cron表达式?

感谢。

2 个答案:

答案 0 :(得分:21)

您可以尝试:return

Cron表达式在此处有六个必填字段。

AWS documentation

答案 1 :(得分:0)

我认为这也适合您的用例,并提供更好的可读性:rate(5 minutes)

或者把它放在 CloudFormation 代码中:

Resources:
  ChangeDetectFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: example/
      Handler: app.lambda_handler
      Runtime: python3.8
      Events:
        ScheduledEvent:
          Name: Every5min
          Type: Schedule
          Properties:
            Schedule: rate(5 minutes)