如何调度AWS Lambda?特定时段定时触发的Cron表达式求解
实现Lambda函数分时段不同频率触发的方案
嘿,这个需求没法用单个Cron表达式直接搞定哦——因为Cron的规则是单一的时间匹配逻辑,没法同时覆盖两种不同的时段+频率组合。不过别担心,我们可以通过创建两个CloudWatch Events规则来实现,分别对应你的两个时段要求:
第一个规则:凌晨1点至5点每5分钟触发
对应的AWS Cron表达式是:
*/5 1-4 * * ? *
表达式解释:
*/5:每5分钟执行一次1-4:匹配1点到4点的所有小时(这样最后一次触发是4:55,刚好在5点前结束;如果你的需求是包含5点整的触发,把1-4改成1-5即可)*:匹配任意日期、任意月份?:表示不指定星期(避免日期和星期字段冲突,AWS Cron要求这两个字段必须有一个为?)- 最后一个
*(可选):匹配任意年份
第二个规则:晚上8点至11点每10分钟触发
对应的AWS Cron表达式是:
*/10 20-22 * * ? *
表达式解释:
*/10:每10分钟执行一次20-22:匹配20点(晚上8点)到22点(晚上10点)的所有小时(最后一次触发是22:50;如果需要包含23点整的触发,把20-22改成20-23即可)- 其余字段和第一个规则同理,保证日期、月份不做限制,星期字段用
?避免冲突
配置步骤(简单版)
- 打开AWS CloudWatch控制台,进入「事件」->「规则」页面
- 点击「创建规则」,选择「计划表达式」,输入上面的第一个Cron表达式
- 在「目标」部分选择你的Lambda函数,完成配置后保存规则
- 重复步骤2-3,创建第二个规则,使用第二个Cron表达式,目标同样选择你的Lambda函数
这样两个规则就会各自在对应的时段按照设定频率触发你的Lambda函数啦~
内容的提问来源于stack exchange,提问作者Naxi
相关产品推荐
相关产品推荐

