ルールのスケジュール式 - Amazon CloudWatch Events

ルールのスケジュール式

注記

Amazon EventBridge is the preferred way to manage your events. CloudWatch イベント and EventBridge are the same underlying service and API, but EventBridge provides more features. Changes you make in either CloudWatch or EventBridge will appear in each console. For more information, see Amazon EventBridge.

cron または rate 式を使用して、CloudWatch イベント で自動化されたスケジュールに基づいて自己トリガーするルールを作成できます。すべてのスケジュールされたイベントは UTC タイムゾーンを使用し、スケジュールの最小精度は 1 分です。

CloudWatch イベント は、cron 式や rate 式をサポートしています。rate 式は定義が簡単ですが、cron 式がサポートするきめ細かいスケジュール制御を提供しません。たとえば、cron 式を使用すると、毎週または毎月の特定の日の指定した時間にトリガーされるルールを定義できます。それに対して、rate 式では、1 時間に 1 回または 1 日 1 回など、通常のレートでルールを起動します。

注記

CloudWatch イベント は、スケジュール式で第 2 レベルの精度を提供しません。Cron 式を使用した最小の解決は分です。CloudWatch イベント とターゲットサービスが持つ分散性の特質により、スケジュールされたルールがトリガーされてから、ターゲットサービスがターゲットリソースの実行を優先するまでの遅延は、数秒となる可能性があります。スケジュールされたルールは、その分のうちにトリガーされますが、正確に 0 秒にトリガーされません。

cron 式

Cron 式には 6 つの必須フィールドがあり、それらは空白で区切られます。

構文

cron(fields)
フィールド [ワイルドカード]

0-59

, - * /

時間

0-23

, - * /

1-31

, - * ? / L W

1-12 または JAN-DEC

, - * /

曜日

1-7 または SUN-SAT

, - * ? L #

1970-2199

, - * /

ワイルドカード

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

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

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

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

  • ? (疑問符) ワイルドカードはいずれかを意味します。[日] フィールドに 7 と入力し、7 日が何曜日であってもかまわない場合、[曜日] フィールドに ? を入力できます。

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

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

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

制限

  • cron 式の日フィールドと曜日フィールドを同時に指定することはできません。一方のフィールドに値 (または *) を指定する場合、もう一方のフィールドで ? (疑問符) を使用する必要があります。

  • 1 分より短い間隔を導き出す cron 式はサポートされていません。

スケジュールに基づいたルールを作成するときは、以下のサンプルの cron 文字列を使用できます。

時間 曜日 意味

0

10

*

*

?

*

毎日午前 10:00 (UTC) に実行

15

12

*

*

?

*

毎日午後 12:15 (UTC) に実行

0

18

?

*

MON-FRI

*

毎週月曜日から金曜日まで午後 6:00 (UTC) に実行

0

8

1

*

?

*

毎月 1 日の午前 8:00(UTC)に実行

0/15

*

*

*

?

*

15 分ごとに実行

0/10

*

?

*

MON-FRI

*

月曜日から金曜日まで 10 分ごとに実行

0/5

8-17

?

*

MON-FRI

*

月曜日から金曜日まで午前 8:00 から午後 5:55(UTC)の間に 5 分ごとに実行

以下の例に示しているのは、AWS CLI の put-rule コマンドで Cron 式を使用する方法です。最初の例では、毎日午後 12:00 (UTC) にトリガーされるルールを作成します。

aws events put-rule --schedule-expression "cron(0 12 * * ? *)" --name MyRule1

次の例では、毎日午後 2:05 と 2:35 (UTC) にトリガーされるルールを作成します。

aws events put-rule --schedule-expression "cron(5,35 14 * * ? *)" --name MyRule2

次の例では、2002~2005 年の毎月最後の金曜日の午前 10:15 (UTC) にトリガーされるルールを作成します。

aws events put-rule --schedule-expression "cron(15 10 ? * 6L 2002-2005)" --name MyRule3

rate 式

rate 式は、予定されたイベントルールを作成すると開始され、その定義済されたスケジュールに基づいて実行されます。

rate 式は 2 つの必須フィールドがあります。フィールドは空白で区切ります。

構文

rate(value unit)
value

正数。

単位

時刻の単位。値 1 には、minute などさまざまな単位が必要です。また、1 を超える値には minutes などの単位が必要です。

有効な値: minute | minutes | hour | hours | day | days

制限

値が 1 に等しい場合、単位は単数形であることが必要です。同様に、1 より大きい値の場合、単位は複数であることが必要です。たとえば、rate(1 hours) と rate(5 hour) は有効ではありませんが、rate(1 hour) と rate(5 hours) は有効です。

以下の例に示しているのは、AWS CLI の put-rule コマンドで rate 式を使用する方法です。最初の例では、1 分ごとにルールを起動し、次の例は 5 分ごとにルールを起動し、3 番目は 1 時間に 1 回ルールを起動し、最後の例は 1 日に 1 回ルールを起動します。

aws events put-rule --schedule-expression "rate(1 minute)" --name MyRule2
aws events put-rule --schedule-expression "rate(5 minutes)" --name MyRule3
aws events put-rule --schedule-expression "rate(1 hour)" --name MyRule4
aws events put-rule --schedule-expression "rate(1 day)" --name MyRule5