ス EventBridge ケジューラのスケジュールタイプ - EventBridge スケジューラ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ス EventBridge ケジューラのスケジュールタイプ

次のトピックでは、Amazon EventBridge Scheduler がサポートするさまざまなスケジュールタイプと、ス EventBridge ケジューラが夏時間をどのように処理するか、およびさまざまなタイムゾーンでスケジュールする方法について説明します。スケジュールを設定する際には、レートベース、cron ベース、および 1 回限りのスケジュールの 3 つのスケジュールタイプから選択できます。

レートベースのスケジュールと cron ベースのスケジュールはどちらも繰り返しのスケジュールです。各定期的なスケジュールタイプは、設定するスケジュールタイプのスケジュール式を使用して設定し、ス EventBridge ケジューラが式を評価するタイムゾーンを指定します。

1 回限りのスケジュールは、ターゲットを 1 回だけ呼び出すスケジュールです。ス EventBridge ケジューラがスケジュールを評価する時刻、日付、タイムゾーンを指定して、 の 1 回限りのスケジュールを設定します。

注記

スケ EventBridge ジューラのすべてのスケジュールタイプは、60 秒の精度でターゲットを呼び出します。つまり、スケジュールを で実行するように設定した場合1:00、柔軟な時間枠が設定されていないと仮定して1:00:591:00:00 と APIの間でターゲットが呼び出されます。

以下のセクションでは、定期的なスケジュールタイプごとにスケジュール式を設定する方法と、ス EventBridge ケジューラで 1 回限りのスケジュールを設定する方法について説明します。

レートベースのスケジュール

レートベースのスケジュールは、スケジュールに指定した開始日の後に開始され、スケジュールの終了日までユーザーが定義した標準レートで実行されます。一般的な繰り返しのスケジュールのユースケースのほとんどは、レートベースのスケジュールを使用して設定できます。例えば、15 分ごとに 1 回、2 時間に 1 回、または 5 日に 1 回ターゲットを呼び出すスケジュールが必要な場合は、レートベースのスケジュールを使用してこれを実現できます。レートベースのスケジュールは、rate 式を使用して設定します。

レートベースのスケジュールでは、StartDate プロパティを使用してスケジュールが最初に出現する日を設定します。レートベースのスケジュールに StartDate を指定しない場合、スケジュールはただちにターゲットを呼び出します。

rate 式には次のように 2 つの必須フィールドがあり、空白で区切られます。

構文

rate(value unit)

正数。

単位

スケジュールでターゲットを呼び出したい時間単位。

有効な入力: minutes | hours | days

次の例は、 コマンドで AWS CLI create-schedule rate 式を使用してレートベースのスケジュールを設定する方法を示しています。この例では、5 分ごとに実行されるスケジュールを作成し、テンプレート化されたSqsParametersターゲットタイプを使用して Amazon SQSキューにメッセージを配信します。

この例では --start-date パラメータの値を設定していないため、スケジュールを作成してアクティブ化した直後に、ターゲットの呼び出しが開始されます。

$ aws scheduler create-schedule --schedule-expression 'rate(5 minutes)' --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Cron ベースのスケジュール

cron 式は、選択した特定の時刻に実行されるきめ細かな定期的なスケジュールを作成します。 EventBridge スケジューラは、世界協定時 (UTC) またはスケジュールの作成時に指定したタイムゾーンでの cron ベースのスケジュールの設定をサポートしています。cron ベースのスケジュールでは、スケジュールを実行するタイミングと頻度をより細かく制御できます。ス EventBridge ケジューラのレート式のいずれかでサポートされていないカスタマイズされた繰り返しスケジュールが必要な場合は、cron ベースのスケジュールを使用します。例えば、毎月PST第 1 月曜日の午前 8 時に実行される cron ベースのスケジュールを作成できます。cron ベースのスケジュールは、cron 式を使用して設定します。

cron 式は、次に示すように、空白で区切られた 5 つの必須フィールド、分、時間、 day-of-month月 day-of-week、、および 1 つのオプションのフィールド、年で構成されます。

構文

cron(minutes hours day-of-month month day-of-week year)
フィールド ワイルドカード

0-59

, - * /

時間

0-23

, - * /

Day-of-month

1-31

, - * ? / L W

1~12 または JAN-DEC

, - * /

Day-of-week

1~7 または SUN-SAT

, - * ? L #

1970-2199

, - * /

ワイルドカード
  • , (カンマ) のワイルドカードには、追加の値が含まれます。月フィールドの には、1 月JANFEB、MAR2 月、3 月が含まれます。

  • - (ダッシュ) のワイルドカードは、範囲を指定します。日フィールドの「1-15」は、指定した月の 1 日から 15 日を含みます。

  • [*] (アスタリスク) のワイルドカードには、フィールドのすべての値が含まれます。[時間] フィールドの * には すべての時間が含まれます。フィールドと Day-of-week フィールドの両方で Day-of-month * を使用することはできません。一方に使用する場合は、もう一方に [?] を使用する必要があります。

  • [/] (スラッシュ) ワイルドカードで増分を指定します。分フィールドで、「1/10」と入力して、その時間の最初の分から始めて、10 分毎を指定できます (11 分、21 分、31 分など)。

  • ? (疑問符) ワイルドカードは任意を意味します。 Day-of-month フィールドに 7 と入力し、曜日が許容できる場合は、フィールドに と Day-of-week入力できます。

  • Day-of-month フィールドまたは Day-of-week フィールドにある [L] のワイルドカードは、月または週の最終日を指定します。

  • フィールドのW Day-of-monthワイルドカードは、平日を指定します。フィールドで、月の Day-of-month3 日に最も近い曜日3Wを指定します。

  • フィールドの Day-of-week # ワイルドカードは、1 か月内の指定された曜日の特定のインスタンスを指定します。例えば、3#2 は、月の第 2 火曜日を示します。3 は週の 3 番目の日 (火曜日) を示し、2 は月のそのタイプの 2 番目の日を示します。

    注記

    「#」文字を使用する場合は、 day-of-weekフィールドで定義できる式は 1 つだけです。例えば、"3#1,6#3" は 2 つの式として解釈されるため、無効です。

次の例は、 コマンドで AWS CLI create-schedule cron 式を使用して cron ベースのスケジュールを設定する方法を示しています。この例では、2022 年から 2023 年の各月の最終金曜日の午前 10:15 UTC+0 に実行されるスケジュールを作成し、テンプレート化されたSqsParametersターゲットタイプを使用して Amazon SQSキューにメッセージを配信します。

$ aws scheduler create-schedule --schedule-expression "cron(15 10 ? * 6L 2022-2023)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

1 回限りのスケジュール

1 回限りのスケジュールでは、有効な日付を使用して指定した日時の 1 回のみターゲットが呼び出され、timestamp. EventBridge Scheduler では、協定世界時 (UTC) またはスケジュールの作成時に指定したタイムゾーンでのスケジューリングがサポートされます。

注記

1 回限りのスケジュールは、実行とターゲットの呼び出しが完了した後も、アカウントクォータに対してカウントされます。1 回限りのスケジュールは、実行が完了した後に削除することをおすすめします。

1 回限りのスケジュールは at 式を使用して設定します。at 式は、以下に示すように、ス EventBridge ケジューラがスケジュールを呼び出す日時で構成されます。

構文

at(yyyy-mm-ddThh:mm:ss)

1 回限りのスケジュールを設定すると、ス EventBridge ケジューラは を無視StartDateし、スケジュールに EndDate を指定します。

次の例は、 コマンドで AWS CLI create-schedule 式で を使用して 1 回限りのスケジュールを設定する方法を示しています。この例では、2022 年 11 月 20 日午後 1 時 UTC8 分に 1 回実行されるスケジュールを作成し、テンプレート化されたSqsParametersターゲットタイプを使用して Amazon SQSキューにメッセージを配信します。

$ aws scheduler create-schedule --schedule-expression "at(2022-11-20T13:00:00)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --schedule-expression-timezone "America/Los_Angeles" --flexible-time-window '{ "Mode": "OFF"}'

ス EventBridge ケジューラのタイムゾーン

EventBridge スケジューラは、指定した任意のタイムゾーンでの cron ベースのスケジュールと 1 回限りのスケジュールの設定をサポートしています。ス EventBridge ケジューラは、Internet Assigned Numbers Authority () によって管理されているタイムゾーンデータベースを使用しますIANA。

では AWS CLI、 --schedule-expression-timezoneパラメータを使用してスケ EventBridge ジューラでスケジュールを評価するタイムゾーンを設定できます。例えば、次のコマンドは、毎日午前 8:30 にアメリカ/ニューヨークでテンプレート化された Amazon SQSSendMessageターゲットを呼び出す cron ベースのスケジュールを作成します。

$ aws scheduler create-schedule --schedule-expression "cron(30 8 * * ? *)" --name schedule-in-est \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "This schedule runs in the America/New_York time zone." }' \ --schedule-expression-timezone "America/New_York" --flexible-time-window '{ "Mode": "OFF"}'

スケ EventBridge ジューラの夏時間

EventBridge スケジューラは、夏時間に合わせてスケジュールを自動的に調整します。春に時間が進むときに、cron 式が存在しない日時に該当すると、スケジュールの呼び出しはスキップされます。秋に時間が戻ったとき、スケジュールは 1 回だけ実行され、その呼び出しは繰り返されません。次の呼び出しは、通常、指定された日時に行われます。

EventBridge スケジューラは、スケジュールの作成時に指定したタイムゾーンに応じてスケジュールを調整します。アメリカ/ニューヨークでスケジュールを設定した場合、そのタイムゾーンの時刻が変更されるとスケジュールが調整されます。一方、アメリカ/ロサンゼルスのスケジュールは、西海岸で時刻が変更されると 3 時間後に調整されます。

rate(1 days) など、単位として days を使用するレートベースのスケジュールの場合、days は時計上の 24 時間を表します。つまり、夏時間によって 1 日が 23 時間に短縮されたり、25 時間に延長されたりしても、ス EventBridge ケジューラはスケジュールの最後の呼び出しから 24 時間後にレート式を評価します。

注記

地域の規則や規制により、一部のタイムゾーンでは夏時間が適用されません。夏時間が適用されないタイムゾーンでスケジュールを作成した場合、スケ EventBridge ジューラはスケジュールを調整しません。夏時間の調整は、協定世界時 () のスケジュールには適用されませんUTC。

アメリカ/ロサンゼルスで次の cron 式を使用してスケジュールを作成するシナリオを考えてみましょう: cron(30 2 * * ? *) このスケジュールは、指定されたタイムゾーンで毎日午前 2 時 30 分に実行されます。

  • Spring-forward – Spring の時刻が午前 1 時 59 分から午前 3 時まで早まると、ス EventBridge ケジューラはその日にスケジュール呼び出しをスキップし、翌日にスケジュールの通常の実行を再開します。

  • フォールバック – 時刻が午前 2 時 59 分から午前 2 時までフォールで逆方向にシフトする場合、 EventBridge スケジューラはシフトが発生する前の午前 2 時 30 分にスケジュールを 1 回だけ実行しますが、時刻シフト後の午前 2 時 30 分にスケジュールの呼び出しは繰り返しません。