Cloud Pub/Sub のメッセージ保持周りの動作を確認してみました。
確認済みメッセージ保持とシーク機能
Cloud Pub/Sub サブスクリプションで最大7日間、Cloud Pub/Sub トピックを利用することで最大31日間に渡って確認済みのメッセージを保持することが可能となります。サブスクリプションについては、設定値「確認済みメッセージを保持」にチェックを入れることで確認済みメッセージの保持が可能となります。
・メッセージ保持機能
確認済みメッセージを保持することで、設定した期間は確認応答のエラーが発生した場合などにシーク機能で確認済みメッセージを未確認としてマークし、Pub/Subにメッセージの再配信を強制することが可能となります。
・シークしてメッセージを再生する
動作確認
Cloud Storage の Cloud Pub/Sub 通知構成より、GCSに新規ファイルを置くことでメッセージを発行し動作を確認する
・Cloud Storage の Pub/Sub 通知
設定値
設定先 | 設定項目 | 設定値 |
---|---|---|
GCS | 通知構成のイベントタイプ | OBJECT_FINALIZE |
トピック | トピックメッセージ保持 | 有効 20分 |
サブスクリプション | サブスクリプションメッセージ保持 | 10分 |
確認済みメッセージ保持 | 有効 |
GCSにファイルを置いてからの挙動
- 20分間はメッセージpullできることを確認
- 20分後にメッセージpullできないことを確認
- 20分間に一度確認応答した場合、以降はメッセージpullできないことを確認
- 確認応答してもタイムスタンプで20分間はシークできたことを確認
- タイムスタンプでシークしたメッセージはバケットにファイルを置いてから20分後にはメッセージpullできないことを確認
- 確認応答してもスナップショットで20分間はシークできたことを確認
- スナップショットでシークしたメッセージはバケットにファイルを置いてから20分後にはメッセージpullできないことを確認
- バケットにファイルを置いてから20分後にスナップショットからシークしてもメッセージは再生されないことを確認
確認
- 20分間はメッセージpullできることを確認
- 20分後にメッセージpullできないことを確認
- 20分間の中で確認応答した場合、以降はメッセージpullできないことを確認
確認応答を実施
確認応答後はpullしてもメッセージが表示されない
- 確認応答してもタイムスタンプで20分間はシークできたことを確認
メッセージ再生
メッセージpullできる
- タイムスタンプでシークしたメッセージはバケットにファイルを置いてから20分後にはメッセージpullできないことを確認
ファイルを置いた16:11から20分経過後の16:31以降はメッセージpullできない
- 確認応答してもスナップショットで20分間はシークできたことを確認 ※予めスナップショットは取得済み
メッセージ再生
メッセージpullできる
- スナップショットでシークしたメッセージはバケットにファイルを置いてから20分後にはメッセージpullできないことを確認 ※予めスナップショットは取得済み
ファイルを置いた16:11から20分経過後の16:31以降はメッセージpullできない
- バケットにファイルを置いてから20分後にスナップショットからシークしてもメッセージは再生されないことを確認 ※予めスナップショットは取得済み
メッセージ再生
メッセージpullできない