はじめに
今回は、EventBridgeのアーカイブと再生機能について試してみます。
アーカイブ機能はイベントバスが受信したイベントを指定した期間・条件で保存しておくことができる機能です。
そして、アーカイブしたイベントを再生するのが再生機能となります
この機能を利用することで、エラー時のリトライ処理や、新しいバージョンのアプリケーションの動作確認などができるとのことです。
やってみよう!
アーカイブの作成
左側のメニューアーカイブ
から作成することができます。
今回は、違う記事で作成したカスタムバスを指定しています。
アーカイブするイベントをフィルタリングできます。
フィルタリングは、ルールを作成するときと同じ操作です。
作成すると、以下のような形で一覧表示されるようになります。
作成直後のキャプチャを撮り忘れたので、サイズ(バイト単位)が144Bytesとなっていますが、これはイベントを2つほどアーカイブした状態のものです。
最初はここが0Byteになってました。
アーカイブ用のルールができてる。
アーカイブを作ると、ルールにアーカイブを行うためのルールが出来ていました。
replay-name
が存在しない場合に動作するようになっていて、これから説明する再生機能で実行されたイベントをまたアーカイブしないような仕組みになってそうです。
イベントを送ってみる。
payment_number
が001
と002
のイベントを手動で送ってみます。
ターゲットをSNS経由のEメールにしているので、メールが2通届きます。
この後、アーカイブを見てみるとイベントのサイズが増えていることが分かります。
なお、このアーカイブされたイベントは閲覧できるのかな?と思ったのですが、閲覧はできないみたいです。
データそのものは安全に保存されているとのこと。
EventBridge はデフォルトで、アーカイブ内のイベントデータを、AWS 所有の CMK の下で 256 ビット高度暗号化規格 (AES-256) を用いて暗号化しており、不正なアクセスからデータを保護します。
次に再生してみる。
左メニューの再生
から再生をしてみます。
再生先はアーカイブ元と同じイベントバスのみとなってました。
また、ルール絞り込みも可能です。
時間も指定可能です。
ここまで指定したらリプレイを開始できます。
開始直後は開始中
となり、即座には実行されません。
5分くらい待ってると、完了済み
になってました。
メール見てみると、リプレイされていることが分かります!
まとめ
アーカイブされたイベントを閲覧できたり、別のイベントバスで再生できると調査に便利かなと思いました。
こんな表記しているってことは、今後は別のイベントバスで再生できるのかな?
そして、デバッグ用のイベントバスで再生し、CloudWatch Logsにイベントを出力し、内容確認みたいなこともできそう!