我正在尝试设置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表达式?
感谢。
答案 0 :(得分:21)
答案 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)