AWS EventBridge のスケジュールを毎日 0 時に実行する
AWS EventBridge で「毎日 0 時」を表す式は cron(0 0 * * ? *) です。以下に、そのまま使える設定、次回の実行時刻、注意点をまとめます。 AWS EventBridge Scheduler は cron() で分から年までの 6 フィールドを使い、設定したタイムゾーン(既定は UTC)で動きます。
cron(0 0 * * ? *)ツールで開く“毎日 00:00”
EventBridge Scheduler
AWS CLI (EventBridge Scheduler)
aws scheduler create-schedule \
--name daily-at-midnight \
--schedule-expression "cron(0 0 * * ? *)" \
--schedule-expression-timezone "UTC" \
--flexible-time-window Mode=OFF \
--target '{"Arn":"arn:aws:lambda:REGION:ACCOUNT:function:my-job","RoleArn":"arn:aws:iam::ACCOUNT:role/scheduler-invoke"}'Terraform
resource "aws_scheduler_schedule" "daily_at_midnight" {
name = "daily-at-midnight"
schedule_expression = "cron(0 0 * * ? *)"
schedule_expression_timezone = "UTC"
flexible_time_window {
mode = "OFF"
}
target {
arn = aws_lambda_function.job.arn
role_arn = aws_iam_role.scheduler.arn
}
}AWS EventBridge の注意点
cron() 内は 6 フィールド分、時、日、月、曜日、年です。秒フィールドはありません。
日付フィールドの一方は ?日を指定したら曜日は ?、その逆も同じです。両方指定するとエラーです。
日曜日は 1曜日は SUN から 1〜7 なので、2-6 が月曜日〜金曜日です。
曜日にステップは使えない曜日フィールドはリスト、範囲、L、# 1 つに対応しますが、/ は使えません。曜日を列挙してください。
よくある質問
AWS EventBridge で「毎日 0 時」を表す cron 式は?
cron(0 0 * * ? *) です。意味:毎日 00:00
AWS EventBridge のスケジュールはどのタイムゾーンで動きますか?
EventBridge Scheduler は --schedule-expression-timezone で IANA 名を指定でき、既定は UTC です。古い EventBridge ルールは UTC のみです。
rate() と cron() の違いは?
rate(5 minutes) はスケジュール開始時から一定間隔で動き、cron() は時刻で動きます。分が重要なら cron() を使います。
EventBridge Scheduler とルールのどちらを使うべきですか?
新しいスケジュールには EventBridge Scheduler が推奨されています。タイムゾーンと 1 回限りのスケジュールに対応します。ルールは UTC のみです。