サブスクリプションのメッセージ保持を構成する

このページでは、Pub/Sub サブスクリプションが公開されたメッセージを保持する方法と、この動作を構成する方法について説明します。 デフォルト設定を変更する理由は次のとおりです。

  • 未確認のメッセージが削除されるまでサブスクリプションで利用可能な期間を調整する。
  • 以前に確認応答されたメッセージの再生を有効にする。

概要

サブスクリプションを作成すると、Pub/Sub はサブスクリプションに代わって公開されたメッセージの保持を開始します。デフォルトでは、Pub/Sub はメッセージが確認応答されるとすぐにサブスクリプションからメッセージを破棄し、未確認のメッセージを 7 日間保持します。

保持期間は、サブスクリプションを作成または更新するときに設定できます。 最小保持期間は 10 分、最大保持期間は 31 日です。

また、構成された保持期間まで、確認応答済みのメッセージを保持するようにサブスクリプションを有効にすることもできます。 確認応答済みのメッセージを保持すると、保持されている限り、以前に確認応答されたメッセージを再生できます。メッセージの再生の詳細については、 シークを使用してメッセージを再生、削除するをご覧ください。

サブスクリプションが確認済みメッセージを保持するように構成されている場合、サブスクリプションによって保持される確認応答済みメッセージのストレージ費用はサブスクリプションのプロジェクトに課金されます。

サブスクリプションのトピックでメッセージ保持を有効にすると、メッセージがサブスクリプションから削除されるのは、メッセージの経過時間がサブスクリプションの保持期間とトピックの保持期間の最大値を超える場合のみです。詳細については、 トピックのメッセージ保持を有効にするをご覧ください。

メッセージ保持を構成する

確認応答済みのメッセージを保持するサブスクリプションを作成する手順は次のとおりです。

コンソール

  1. コンソール Cloud de Confiance で、[Pub/Sub のサブスクリプション] ページに移動します。

    [サブスクリプション] ページに移動

  2. [サブスクリプションを作成] をクリックします。

  3. [サブスクリプション ID] フィールドにサブスクリプションの ID を入力します。

  4. [メッセージ保持期間] セクションで、メッセージを保持する日数、時間、分を選択します。

  5. [確認応答済みメッセージを保持する] チェックボックスをオンにします。

  6. [サブスクリプションを作成] をクリックします。

gcloud

gcloud pubsub subscriptions create を使用します。

gcloud pubsub subscriptions create SUBSCRIPTION_ID \
  --message-retention-duration=5d \
  --retain-acked-messages

SUBSCRIPTION_ID をサブスクリプションの ID に置き換えます。

--message-retention-duration フラグを省略すると、メッセージはデフォルトの 7 日間保持されます。

既存のサブスクリプションのメッセージ保持設定を更新する手順は次のとおりです。

コンソール

  1. [Pub/Sub サブスクリプション] ページからサブスクリプションを選択します。

    [サブスクリプション] ページに移動

  2. サブスクリプションの詳細ページの上部にある [編集] をクリックします。

  3. [メッセージ保持期間] セクションで、メッセージを保持する日数、時間、分を更新します。

  4. [確認応答済みメッセージを保持する] チェックボックスをオンまたはオフにします。

  5. [更新] をクリックして、サブスクリプションへの変更を保存します。

gcloud

gcloud pubsub subscriptions update コマンドを実行します。

gcloud pubsub subscriptions update SUBSCRIPTION_ID \
  --message-retention-duration=1d \
  --retain-acked-messages

確認応答済みメッセージの保持を無効にするには、--no-retain-acked-messages フラグを指定して update コマンドを使用します。

gcloud pubsub subscriptions update SUBSCRIPTION_ID \
  --no-retain-acked-messages

次のステップ