AWSのLambdaでcronみたいな感じで定期実行する

AWSのLambda関数を、Linuxのcronのような感じで定期的に実行したい時のやり方のメモ。

トリガーをCloudWatch Eventsのスケジュール式にすればよい。5分毎、のような設定が可能なRate式と、従来のcronとほぼ同じように毎月2時15分00秒、というような設定が可能なCron式の設定がある。

スポンサーリンク

やりたいこと

Lambda関数を定期的に実行したい。

やり方

Lambda関数のトリガーを、CloudWatch Eventsにして、ルールタイプをスケジュール式にする。

スケジュール式には、5分毎とか1時間毎といったような設定が可能なRate式と、毎月2時15分00秒というように日時を細かく指定できるCron式がある。

Rate式のほうが簡単に設定できる。日時指定が必要なければRate式が楽。

# Rate式
# 5分ごと
rate(5 minutes)
# 1時間ごと
rate(1 hour)

日時指定が必要な時は、やはりCron式。書式は

cron(分 時 日 月 曜日 年)

で、なんとYearがある。また、タイムゾーンはUTCなので、日本時間から-9時間して考える。たとえば日本時間の10時はUTCでは1時。また、日と曜日のどちらかは「?」でなければいけない

ワイルドカードも色々あるので、公式のドキュメント「Rate または Cron を使用したスケジュール式 – AWS Lambda」を見る。

公式の例。

# 毎日、UTCで10時(日本時間19時)
cron(0 10 * * ? *)
# 月曜~金曜の10分ごと
cron(0/10 * ? * MON-FRI *)

年の設定ってすごい。。

以上。

関連コンテンツ

関連記事

スポンサーリンク

カテゴリーaws

コメントを残す

メールアドレスが公開されることはありません。