背景
cronは使い慣れてるつもりだったが、ECSのFargateでスケジューリングタスクを実行しようとしたときに、ハマったので、備忘録として。
曜日の項目
Parameter ScheduleExpression is not valid
このエラーでハマりました。
普通にLinuxでcronを動作させるとき、
例えば9時30分に実行させたい場合、
30 9 * * * command
となると思いますが、
AWSのcron表現では、
cron(30 9 * * ? *)
という形になります。
左から、分、時、日、月、曜日、年を表します。
注意すべき点は、
- スペースで区切られた項目が、6つある
- 曜日の部分を任意にしたい場合は、*ではなく?を入力する
の二点です。
JST(日本時間)ではなく、UTC(協定世界時)になっている
リージョンが東京であっても、cronの書式の単位はUTCになっています。
なので、日本時間から9時間遅れているに注意が必要です。
計算は、例えば
9:30(JST) ⇔ 0:30(UTC)
2:00(JST) ⇔ 17:00(UTC)
のようにすれば良いです。
おまけ
ここに全部書いてある。