Systems Manager Quick Setup の Cron 式で「月の特定の日付」指定時にエラーが発生する原因と対処法

Systems Manager Quick Setup の Cron 式で「月の特定の日付」指定時にエラーが発生する原因と対処法

Clock Icon2025.07.02

困っていること

Systems Manager Quick Setup において Cron 式で月次スケジュールを設定しようとしたところ「cron 式が無効です」というエラーが出てしまうのですが、原因と対処法を教えてください。
設定した式は以下のとおりです。

cron(0 8 10 * ? *)

フィールド 意味
0 0 分(毎時 0 分)
8 8 時(午前 8 時)
10 10 日(毎月 10 日)
* 全ての月(1 月〜 12 月)
曜日 ? 指定なし(日フィールドを使用するため)
* 全ての年

原因

Quick Setup を使用すると、内部的に State Manager の関連付け設定が自動で作成されます。
しかし、この自動作成される関連付けでは、Cron 式の書き方に一部制限があり、すべてのスケジュールパターンを設定することができません。

今回エラーが発生した cron(0 8 10 * ? *) は、月の特定の日付(10 日)を指定していますが、State Manager の関連付け経由では、月の特定の日付を指定したスケジュール は非対応となるため、エラーが発生しました。

リファレンス: Systems Manager の Cron 式および rate 式 - AWS Systems Manager

関連付けは、1/2、1、2、4、8、または 12 時間ごと、毎日、毎週、n 日ごと、またはその月の最後の x 曜日などの特定の時間の cron 式をサポートしています。

どう対応すればいいの?

結論

残念ながら月の特定の日付を指定した設定はできませんが、上述のドキュメントに記載のとおり 月の n 週目の x 曜日 という設定は可能となります。

そのため、次の例のように「月の第 2 木曜日」に設定するような代替案が挙げられます。

cron(0 8 ? * THU#2 *)

フィールド 意味
0 0 分(毎時 0 分)
8 8 時(午前 8 時)
? 指定なし(曜日フィールドを使用するため)
* 全ての月(1 月〜 12 月)
曜日 THU#2 毎月第 2 木曜日
* 全ての年

やってみた

  • 月の特定の日付を指定:cron(0 8 10 * ? *)
    「cron 式が無効です」というエラーにより設定ができませんでした。
    165833

  • 月の n 週目の x 曜日を指定:cron(0 8 ? * THU#2 *)
    エラーは発生せず、正常に設定できました。
    165926

参考情報

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.