我想使用Cloudwatch Rules触发AWS Lambda函数,要求如下。
我阅读了documentation on crons,无法提出Cron表达式来满足条件3 。我想出了以下表达式。
0/5 ## * * ? *
我如何满足上述的条件3 ?我在cron表达式上将其保留为##
。我很清楚时区。
答案 0 :(得分:2)
答案 1 :(得分:2)
我在回答自己的问题。正则cron表达式不适用于 AWS Cloudwatch规则。 AWS Cloudwatch规则的cron表达式为六个(6)必填字段。 (Link to Documentation)。这个问题的答案如下。我将介绍不同的情况,因为在某些情况下,时区很重要,我们可能不得不跳过不同的时间而不是午夜。
以下两种情况都可以使用,我已经在AWS Cloudwatch规则中进行了测试。
方案1:每天触发一次-每5分钟-将11PM跳到1AM。
0/5 1-22 * * ? *
说明:提及第一个字段,仅应在第0分钟和第5分钟触发。第二个字段提到应该从1小时到22小时触发。因此,在22:55之后,下一个触发条件将是1:00。它将从23:00跳到00:55。
方案2:每天触发一次-每5分钟-从5PM跳到7PM
0/5 0-16,19-23 * * ? *
说明:提及第一个字段,仅应在第0分钟和第5分钟触发。第二个字段提到应该从0小时到16小时以及从19小时到23小时触发。因此,在16:55之后,下一个触发条件将是19:00。它将从17:00跳到18:55。
答案 2 :(得分:1)
此命令可以为您提供帮助:
*/5 1-23* * * * /usr/bin/php /home/username/public_html/cron.ph >/dev/null 2>&1
答案 3 :(得分:1)
已经给出了答案,但是我没什么可补充的,https://crontab.guru/引起了混乱,因为AWS cron表达式由6
个数字组成,而crontab由5
个组成,造成@keet提到的混乱
因此,首先,您可以忽略年份部分,并在crontab中检查您的cron表达,但是再次提到crontab,一周中的某几天都不了解?
标记。
所以我的建议是使用AWS控制台进行表达式测试,该控制台将列出下一个10
触发器。
因此希望它可以帮助其他人了解下一个触发器。
有关更多详细信息,请选中AWS CronExpressions