EventBridge Schedulerの細かい話
2022/11/10に、Amazon EventBridge Schedulerという新機能が追加されました。個人的によく使うので嬉しいです。
使い方は他のブログを見ていただくことして、ここでは以下について小ネタを書きます。
- Timezone
- Time Frame
- Flexible time windows
タイムゾーンがAsia/Tokyoになっている
これまでは、TimezoneはUTCが基本でしたが、デフォルトでAsia/Tokyoになっていました。リージョン設定がTokyoでなくても、デフォルトリージョンや言語設定を変えても変わらずで、OSのタイムゾーン設定(=ブラウザ)で決まるようです。
タイムフレーム
cronを指定したあと、期間を設定して有効にできます。
- 時刻だけ入力すると動作しません(エラーにはならない)
-
日付だけ入力すると0:00扱い日付、時刻ともに入力が必要です。 - 開始時刻を過去にするとエラーが出ます。5分前までは可能。
やってみる
cronを毎分動作するようにして、Start 20:35 End 20:40 にしてみます。EventBridge から SNS でemailを送ります。
Next 5 trigger dates という、次のトリガー時間が表示されています。UTCになるので11:36から11:40ですが、この画面では時刻表示が間違っています。正しくは11:35(20:35)からの毎分で、11:39(20:30)が最後のトリガーです。
実際の動作時刻を確認します。以下はメールボックス(Gmail)のスナップショットで、本文の冒頭が見えているのですが、Payloadに設定したスケジュール時刻({"ScheduledTime": "<aws.scheduler.scheduled-time>"}
)が表示されています。スケジュール時刻も、右側の受信時刻35分から39分になっていますね。
Flexible time windows
Amazon EventBridge スケジューラは柔軟な時間枠をサポートするため、ターゲットを正確にスケジュールして呼び出す必要のないユースケースでは、スケジュールを分散させて、トリガーの信頼性を向上させることができます。
- 指定した範囲で、実行時間が分散されます
- ただし、一度設定するとオフセットは同じ(例えば、毎回5分25秒ずれるとか)
- 設定しなおすと、オフセットが変わる
- 「トリガーの信頼性を向上」とはいえ、リトライ機能があるのであまり意味がないのでは?
- 英語だとFlexible time windowsなのに、日本語だとフレックスタイムウィンドウです。私はコンソールを英語で使っているのもあり、なにかと話が通じにくくなるので(window"s"はともかく)そのままカナにしたほうが良かったのでは、と思っています。
使いどころ?
- Flexible time windows、使いどころがよく分からないです(信頼性がそもそも高いと思っているので)。
- 想像でしかありませんが、AWSは「00分のようなキリのいいタイミング」での実行が多すぎて困っていて、EventBridge実行の偏りを緩和したいのでは?
・・・割引があったら使う人もいるのかな、と思ってつぶやいたらEventBridgeのPMの方からリプライきました(たぶん意図は伝わってないのだけど。見てるんだな、、と。)
まとめ
- いつもお世話になっているEventBridgeの新機能Schedulerを使ってみました。良さそうです。
- Flexible time windowsは気になることがあるのでいろいろ試してみたいです。
Discussion