はじめに

Lambdaを動かす時間をJSTで指定するためにEventBridgeルールからEventBridgeスケジューラへ切り替えました。
但しフレックスタイムウィンドウが原因で設定した時間にLambdaが動かなかった事象が発生しました。

同じようなことが起きた時に対処できるように今回、フレックスタイムウィンドウの記事を作成しました。
まずEventBridgeスケジューラのフレックスタイムウィンドウの説明から始めさせて頂きます。

フレックスタイムウィンドウとは

設定された時間枠内にターゲットを呼び出すことでターゲットの呼び出しを分散します。
フレックスタイムウィンドウをターゲットを分散させることで、スケジュールの信頼性を向上させられます。
ターゲットの呼び出しを正確にスケジュールする必要もなく、負荷を分散させたい場合に便利です。

また決められた時間にLambdaを動かしたい場合はEventBridgeスケジューラの設定画面にて
フレックスタイムウィンドウをオフに設定します。

終わりに

EventBridgeスケジューラはフレックスタイムウィンドウを設定することで指定した時間内で柔軟にLambdaを動かすことが出来ますが、
指定した時間通りにLambdaを動かす場合はうっかり設定が入っていることに気づかなければ大変なことになります。

指定した時間にLambdaが動作しなかった原因はEventBridgeスケジューラでフレックスタイムウィンドウが15分に設定されていたことでした。

その為、EventBridgeスケジューラを設定する際はフレックスタイムウィンドウを考慮することをオススメします。

参考資料

Amazon EventBridge Schedulerユーザーガイド/柔軟な時間枠の設定
https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/managing-schedule-flexible-time-windows.html