Cron & Scheduling

EventBridge cron式予定した時刻の意味を確かめる

式を貼り付けて検証するか、フィールドから下書きを作り、プレビューして適用します。

EventBridge cron式

式

入力はこのブラウザー内で処理され、サーバーには送信されません。

スケジュール設定の断片

出力はスケジュール属性のみです。AWS側で名前、ターゲット、権限を追加してください。Schedulerにはターゲット実行ロールも必要です。

オプション

項目から作成

このフィールドは下書きです。適用するまで上の式は変わらず、貼り付けた入力が検証対象になります。

cron(0 9 ? * MON-FRI *)

順序は分、時、日、月、曜日、年。日曜は1です。日と曜日の片方だけを?にします。L、15W、FRIL、MON#1は対応する日付フィールド単独で使います。

式は1件、最大256文字。年は1970〜2199。秒、at()、LW、Lのオフセットには非対応。逆順範囲は時のみ対応し、実在する実行日は計算しません。

入力または設定が変更されました。結果を更新してからエクスポートしてください。

毎朝9時に動かすつもりが、UTCの9時になっていた。EventBridge cron式を確認するときは、フィールドだけでなく、ルールとSchedulerのどちらを使うかも決める必要があります。曜日番号は日曜が1で、末尾には年を指定します。

EventBridgeスケジューラで平日の朝を指定する場合と、レート式で5分間隔にする場合では、時間の数え方が異なります。タイムゾーンを式の中に埋め込まず、サービスに対応した別の設定として確認できます。

EventBridge cron式を確認する理由

UTC固定と地域の時刻を分ける

EventBridge cron式自体にはタイムゾーンを書きません。Schedulerを選ぶと出力に専用属性が加わり、従来のルールを選ぶと省かれます。同じ9時という入力でも、どの時間基準で評価されるかを設定断片で見分けられます。

1つの時計から、UTC固定の時計と地球に結び付いた地域の時計へ経路が分かれている。

曜日指定と一定間隔を混同しない

平日の朝だけ送るレポートには日付条件が必要です。一方、5分おきの処理は経過時間で指定します。下書きの入力欄を分けることで、カレンダーの6項目をrate()へ入れる間違いを防ぎます。

カレンダーの平日が選択され、その下の時間軸には等間隔の印が並んでいる。

時刻の解釈で迷わないために

01

利用するサービスを先に選ぶ

初期設定はSchedulerです。ルールへ切り替えると有効な時間基準はUTCに固定され、戻すと入力済みの地域設定が復元されます。有効な設定を変えた直後は、古い結果をコピーできません。

  • 端末のタイムゾーンを自動で採用することはありません。
02

下書きはプレビューして適用する

プリセットは下のフィールドへ反映されます。プレビューで変更前後の式と文字数を比較してから適用してください。取り消すと入力、設定、結果が一緒に元に戻ります。

  • 下書きを編集しても、貼り付けた式は変わりません。
03

更新状態を見てから持ち出す

自動検証は最後の編集から350ミリ秒後に動きます。オフにするとボタンまたはCtrl/Cmd + Enterで実行できます。式だけのコピーと設定JSONのダウンロードを用途で使い分けてください。

  • 構文確認はAWS上の実行確認を代行しません。

実行条件をフィールドごとに確認

年と曜日を含む6項目の検証

分や時の範囲に加え、年の上限と下限、曜日の1〜7を確認します。月名はJAN〜DEC、曜日名はSUN〜SATを使用できます。エラーには対象フィールドと開始列が表示され、桁や位置の取り違えを探せます。

月末や第何曜日にも対応

日のLと数値W、曜日のL・曜日L・曜日#回数を検証します。日と曜日は片方だけを?にする必要があります。#を複数並べたり、未対応のQuartz記法を混ぜたりした式を、そのまま有効とは表示しません。

サービスごとに異なる設定を出力

SchedulerのcronではScheduleExpressionTimezoneを追加し、FlexibleTimeWindowを明示的にOFFへ設定します。ルールの出力はScheduleExpressionのみです。Rateには時刻の地域指定を付けず、一定間隔であることを保ちます。

生成と貼り付けに同じ判定を適用

括弧なしの6フィールドは結果でcron(...)にまとめます。大小文字と空白を整えても、原文は自動で書き換えません。Rateの単位は数値から単数形・複数形を選び、既存の式にも同じ規則を適用します。

対応構文と設定の範囲

対応する記号の組み合わせ
日はLまたはnW、曜日はL、weekdayL、weekday#1〜5に対応します。LW、Lのオフセット、C、H、特殊指定の混在リスト、曜日の増分には非対応です。時以外の逆順範囲は正順範囲やリストへ分けてください。
実際に日付が現れるかは別問題
2月31日や存在しない第5曜日、過去の年も、フィールドの構文だけなら成立します。将来の実行時刻や回数は計算せず、秒単位の発火も保証しません。AWS側で実行対象期間を確認してください。
Rateの単位は標準形に統一
JavaScriptで安全に表現できる正の整数を指定します。このツールではrate(1 minute)とrate(5 minutes)のように単複を合わせます。Scheduler APIが受け付ける全表記を検証したという意味ではありません。
リソースの作成に必要な項目は別途設定
名前、ターゲットARN、実行ロール、アクセス権限は出力に含みません。開始・終了日、再試行、デッドレターキュー、柔軟な時間枠の編集も対象外です。OFFはこの断片が明示的に選んだ値です。
対象はAWSの繰り返しスケジュール
全体は256文字以内、年は1970〜2199です。Unixの5フィールド、Quartzの7フィールド、at()による1回限りの指定、ファイル入力、他社クラウドの方言は扱いません。IANA名の認識はブラウザーのデータに依存します。

EventBridge cron式のよくある質問

cron式が無効になるのはなぜですか?

まず分から年までの6項目かを確認し、日と曜日の片方だけに?を指定します。日曜はUnixの0ではなく1です。EventBridge cron式の検証結果では、数値範囲の問題と未対応の記号の組み合わせを分けて表示します。

UTC以外のタイムゾーンを使うには?

Schedulerを選び、Asia/TokyoなどのIANA名を指定します。式の時刻はそのままにして、別属性で地域を指定します。従来のルールはUTC固定なので、表示上のタイムゾーンを変えても実行時刻の基準は変わりません。

夏時間への切り替えはどう扱われますか?

Schedulerのcronでは、春に存在しなくなる時刻は実行せず、秋に2回現れる時刻は1回だけ実行します。Rateの1日は24時間です。地域の毎朝同じ時刻が必要なら、一定間隔ではなくcronを使用します。

従来のルールとSchedulerは何が違いますか?

ルールはUTCを使う従来の仕組みです。Schedulerでは地域のタイムゾーンと独立した呼び出し設定を使えます。このページではスケジュール属性の差を確認でき、ターゲットの移行やIAM検証は行いません。

Terraformではどこに式を書きますか?

カレンダー条件はcron(...)、数値と単位はrate(...)にします。対象リソースのschedule_expressionへ式を入れ、Schedulerのcronならschedule_expression_timezoneも別に設定します。ダウンロードはJSONの属性例であり、HCLの完成したリソースではありません。

実行日時が予想と違いますか?

設定を確認してから使う

EventBridge cron式の条件を確認したら、選択したサービスの設定へコピーしてください。ターゲットの権限と実際の呼び出しはAWS側で確かめます。

このページからスケジュールが作成・開始されることはありません。