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

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

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

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

レートベースのスケジュールと cron ベースのスケジュールはどちらも定期的なスケジュールです。設定するスケジュールの種類に応じたスケジュール式を使用し、Scheduler が式を評価するタイムゾーンを指定して、それぞれの定期スケジュールタイプを設定します。 EventBridge

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

注記

EventBridge Scheduler のすべてのスケジュールタイプは 1 分の精度で動作します。つまり、スケジュールは、スケジュールの作成時に指定した時間から 1 分以内にターゲットを呼び出します。

以下のセクションでは、定期的なスケジュールタイプごとにスケジュール式を設定する方法と、Scheduler で 1 回限りのスケジュールを設定する方法を学んでください。 EventBridge

料金ベースのスケジュール

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

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

レート式には、以下に示すように、空白で区切られた 2 つの必須フィールドがあります。

構文

rate(value unit)

正数。

単位

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

有効な入力:minutes| | hours days

次の例は、AWS CLIcreate-scheduleコマンドでレート式を使用してレートベースのスケジュールを設定する方法を示しています。この例では、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 スケジューラーは、cron ベースのスケジュールを世界協定時 (UTC) またはスケジュールの作成時に指定したタイムゾーンで構成することをサポートしています。cron ベースのスケジュールでは、スケジュールを実行するタイミングと頻度をより細かく制御できます。Scheduler のレート式ではサポートされていないカスタマイズされた繰り返しスケジュールが必要な場合は、cron EventBridge ベースのスケジュールを使用してください。たとえば、午前 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

, - * /

D ay-of-month

1-31

, - * ? / L W

1-12 または JAN-DEC

, - * /

D ay-of-week

1-7 または SUN-SAT

, - * ? L #

1970-2199

, - * /

ワイルドカード
  • [,] (カンマ) のワイルドカードには、追加の値が含まれます。月フィールドの、「JAN,FEB,MAR」は、1 月、2 月、3 月を含みます。

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

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

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

  • ? (疑問符) ワイルドカードは任意を意味します。D ay-of-month フィールドには 7 と入力でき、曜日がどれでもかまわない場合は、? と入力できます。 D ay-of-week フィールドに。

  • D ay-of-month フィールドまたは D ay-of-week フィールドの L ワイルドカードは、その月または週の最後の日を指定します。

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

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

    注記

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

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

$ 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 回だけターゲットを呼び出します。 EventBridge Scheduler は、世界協定時 (UTC) またはスケジュールの作成時に指定したタイムゾーンでのスケジューリングをサポートします。

注記

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

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

構文

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

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

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

$ 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 Scheduler は、指定した任意のタイムゾーンで cron ベースのスケジュールと 1 回限りのスケジュールを設定できます。 EventBridge Scheduler は、インターネット割り当て番号局 (IANA) が管理するタイムゾーンデータベースを使用します

ではAWS CLI、 EventBridge Scheduler にスケジュールを評価させたいタイムゾーンをパラメータを使用して設定できます。--schedule-expression-timezoneたとえば、次のコマンドは、毎日午前 8 時 30 分にアメリカ/ニューヨークでテンプレート化された Amazon SQS SendMessage ターゲットを呼び出す 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 Scheduler は夏時間に合わせてスケジュールを自動的に調整します。春に時刻がずれると、cron 式が存在しない日付と時刻になると、スケジュールの呼び出しはスキップされます。秋に時間が逆転しても、スケジュールは 1 回だけ実行され、その呼び出しは繰り返されません。以下の呼び出しは、通常、指定された日時に行われます。

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

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

注記

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

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

  • Spring-forward — 春に午前 1 時 59 分から午前 3 時に時間がずれると、 EventBridge Scheduler はその日のスケジュール呼び出しをスキップし、翌日には通常どおりスケジュールの実行を再開します。

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