AWS Lambda 是事件驱动的设计, 通常官方DEMO喜欢拿AWS S3做为例子, 當你上传图片之后, 就会产生Event , 就能驱动 Lambda 瞬间做出一张缩图
不过有時候,我们就是需要排程工作 ,例如:
. log 档案清理、搬移
. 定期跑报表
. 指定某个特定时间开EC2机器 (例如国庆节起跑前的某个时间点,新增1000台EC2)
所以我门需要一个类似 cron 的服務, 定期的产生事件來启动程式, 假如不用开一台EC2來跑那就更好了.
CloudWatch Events
AWS CloudWatch Events 提供了这样的服務, 设定好 cron 之後, 將 target 指到你的 lambda function 便告完成.
ps: 這个服务似乎是完全免费, 在帐单上沒有看到这个項目.
注意事项
时间精度沒那么准: 以每分钟触发一次的情況來说, 一定會延时几秒~十几秒.
cron expressions
这边用的 cron expressions 是六组字串, 与一般 Linux 的五组不同, 差別在于最后多了一個 Year
cron expressions 的日期 & 星期几,不能同时为 * 号, 其中一个必须为 ? 号
范例
1. 每分分触发一次 : * * * * ? *
2. 周一到周五每10分钟一次 : 0/10 * ? * 1-5 *