本文へスキップ
cron.surf

AWS EventBridge の cron を Kubernetes に変換

AWS EventBridge のフィールドは cron(分 時 日 月 曜日 年)、Kubernetes は 分 時 日 月 曜日 です。式を貼り付けると変換します。正確に対応しない部分は理由と代替案を示します。

“00:00、月の最終日”

変換先 · Kubernetes変換不可
  • 日: Kubernetes には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    これだけでは同等になりません。ジョブ内での判定が必要です。

他のプラットフォームでの同じスケジュール

crontab変換不可
  • 日: crontab には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && /path/to/job
    これだけでは同等になりません。ジョブ内での判定が必要です。
GitHub Actions変換不可
  • 日: GitHub Actions には「月末」がありません。月末は 28 日から 31 日まで変わるため、固定の日付では一致しません。

    代替案28〜31 日に実行し、翌日が 1 日でなければ終了します。GNU date が必要です。crontab では % を \% と書きます。
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    これだけでは同等になりません。ジョブ内での判定が必要です。

GitHub で実行が遅れる? 定刻に起動する →

Spring同等
0 0 0 L * *
6 フィールドで秒が先頭。zone= を指定しなければサーバーのタイムゾーン。
Quartz同等
0 0 0 L * ?
秒が先頭、日曜日は 1、日付フィールドの一方は ?。

次の 10 回の実行

ブラウザで計算
  1. 計算中…

AWS EventBridge と Kubernetes の違い

AWS EventBridgeKubernetes
フィールドcron(分 時 日 月 曜日 年)分 時 日 月 曜日
日曜日1(SUN=1 … SAT=7)0(7 はエラー)
日と曜日の両方を指定一方は ? が必須どちらか一致。制限なしは * か ? のみ
特殊文字L W #(# は 1 つ)なし
短縮形なし。間隔は rate()@yearly @monthly @weekly @daily @hourly
タイムゾーンScheduler で IANA 名、既定は UTCspec.timeZone、なければコントローラー
最短間隔1 分1 分

よく使うスケジュールの変換結果

AWS EventBridgeKubernetes
5 分ごとcron(0/5 * * * ? *)*/5 * * * *
1 時間ごとcron(0 * * * ? *)0 * * * *
毎分cron(* * * * ? *)* * * * *
10 分ごとcron(0/10 * * * ? *)*/10 * * * *
15 分ごとcron(0/15 * * * ? *)*/15 * * * *
30 分ごとcron(0/30 * * * ? *)*/30 * * * *
毎日 0 時cron(0 0 * * ? *)0 0 * * *
毎日 9 時cron(0 9 * * ? *)0 9 * * *
平日 9 時cron(0 9 ? * 2-6 *)0 9 * * 1-5
毎週月曜日cron(0 0 ? * 2 *)0 0 * * 1
毎月 1 日cron(0 0 1 * ? *)0 0 1 * *
6 時間ごとcron(0 0/6 * * ? *)0 */6 * * *
毎週日曜日 0 時cron(0 0 ? * 1 *)0 0 * * 0
2 時間ごとcron(0 0/2 * * ? *)0 */2 * * *
12 時間ごとcron(0 0/12 * * ? *)0 */12 * * *
毎日 12 時cron(0 12 * * ? *)0 12 * * *
毎週金曜日cron(0 0 ? * 6 *)0 0 * * 5
毎月末日cron(0 0 L * ? *)変換不可
四半期ごとcron(0 0 1 1/3 ? *)0 0 1 */3 *
2 分ごとcron(0/2 * * * ? *)*/2 * * * *
3 時間ごとcron(0 0/3 * * ? *)0 */3 * * *
毎日 6 時cron(0 6 * * ? *)0 6 * * *
毎日 18 時cron(0 18 * * ? *)0 18 * * *
1 日 2 回cron(0 0/12 * * ? *)0 */12 * * *
平日 18 時cron(0 18 ? * 2-6 *)0 18 * * 1-5
週末 10 時cron(0 10 ? * 1,7 *)0 10 * * 0,6
毎月 15 日cron(0 0 15 * ? *)0 0 15 * *
毎月第 1 月曜日cron(0 9 ? * 2#1 *)変換不可
毎月最終金曜日cron(0 17 ? * 6L *)変換不可
年 1 回cron(0 0 1 1 ? *)0 0 1 1 *
3 分ごとcron(0/3 * * * ? *)*/3 * * * *
20 分ごとcron(0/20 * * * ? *)*/20 * * * *
4 時間ごとcron(0 0/4 * * ? *)0 */4 * * *
8 時間ごとcron(0 0/8 * * ? *)0 */8 * * *
毎日 1 時cron(0 1 * * ? *)0 1 * * *
毎日 2 時cron(0 2 * * ? *)0 2 * * *
毎日 3 時cron(0 3 * * ? *)0 3 * * *
毎日 8 時cron(0 8 * * ? *)0 8 * * *
毎平日cron(0 0 ? * 2-6 *)0 0 * * 1-5
毎週末cron(0 0 ? * 1,7 *)0 0 * * 0,6
毎週火曜日cron(0 0 ? * 3 *)0 0 * * 2
毎週水曜日cron(0 0 ? * 4 *)0 0 * * 3
毎週木曜日cron(0 0 ? * 5 *)0 0 * * 4
毎週土曜日cron(0 0 ? * 7 *)0 0 * * 6
6 か月ごとcron(0 0 1 1/6 ? *)0 0 1 */6 *

よくある質問

AWS EventBridge の式はすべて Kubernetes に変換できますか?

すべてではありません。このページの 45 件のうち 42 件が同等に変換できます。残りは代替案が必要で、変換ツールが表示します。

AWS EventBridge と Kubernetes で日曜日はどう書きますか?

AWS EventBridge:1(SUN=1 … SAT=7)。Kubernetes:0(7 はエラー)。

タイムゾーンも引き継がれますか?

式自体にはタイムゾーンがありません。AWS EventBridge:Scheduler で IANA 名、既定は UTC。Kubernetes:spec.timeZone、なければコントローラー。