参数 ScheduleExpression 无效

Parameter ScheduleExpression is not valid

我正在尝试设置 Cloudwatch 计划事件,但我的 cron 表达式似乎无效,但我不知道为什么。

我的 cron 表达式是:

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

我希望它在每天每个小时的第 5、15、25、35、45 和 55 分钟运行。这似乎与此处 http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html.

的 AWS Scheduled Events 文档一致

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

我尝试在 Lambda 控制台(创建函数并选择 Cloudwatch 计划事件时)和 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 无效。但是,我可以使用预制的 rate() 表达式之一。

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

谢谢。

你能试试吗:cron(5,15,25,35,45,55 * * * ? *)

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

AWS documentation


编辑:另外,不要错过这个重要的通配符注释...

You cannot use * in both the Day-of-month and Day-of-week fields. If you use it in one, you must use ? in the other.

我认为这也适合您的用例,并提供更好的易读性: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)