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

    1. 這邊用的 cron expressions 是六組字串, 與一般 Linux 的五組不同, 差別在於最後多了一個 Year
    2. cron expressions 的日期 & 星期幾,不能同時為 * 號, 其中一個必須為 ? 號
  • 範例

    1. 每分鐘觸發一次 :  * * * * ? * 
    2. 週一到週五每10分鐘一次 :  0/10 * ? * 1-5 *

參考資料