Cloud Storage のサブスクリプション

Cloud Storage サブスクリプションは、メッセージを受信すると既存の Cloud Storage バケットにメッセージを書き込むエクスポート サブスクリプションの一種です。別のサブスクライバー クライアントを構成する必要はありません。 Google Cloud コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用して、Cloud Storage サブスクリプションの作成、更新、一覧表示、接続解除、削除を行います。

Cloud Storage サブスクリプション タイプがない場合は、pull サブスクリプションまたは push サブスクリプションと、メッセージを読み取り、Cloud Storage バケットに書き込むサブスクライバー(Dataflow など)が必要です。メッセージが Cloud Storage バケットに保存される前に追加の処理が不要な場合は、Dataflow ジョブを実行するオーバーヘッドは必要ありません。代わりに Cloud Storage サブスクリプションを使用できます。

ただし、データを Cloud Storage バケットに保存する前にデータ変換が必要な Pub/Sub システムでは、Dataflow パイプラインの使用をおすすめします。

Dataflow を使用した変換により Pub/Sub から Cloud Storage にデータをストリーミングする方法については、Dataflow を使用して Pub/Sub からメッセージをストリーミングするをご覧ください。

準備

このドキュメントを読む前に、次の内容をよく理解しておいてください。

Cloud Storage subscription workflow

次の図は、Cloud Storage サブスクリプションと Cloud Storage 間のワークフローを示しています。

Cloud Storage サブスクリプションのメッセージのフロー

図 1. Cloud Storage サブスクリプションのワークフロー

図 1 を参照するワークフローの概要は次のとおりです。

  1. Pub/Sub は、Cloud Storage API を使用して Cloud Storage バケットにデータを送信します。書き込みオペレーションが正常に完了すると、API は OK レスポンスを返します。

  2. メッセージはバッチで Cloud Storage バケットに送信されます。1 つのバッチは、Cloud Storage バケットに保存されるオブジェクトに対応します。バッチ設定は、オブジェクトのサイズとオブジェクトの作成からの経過時間に基づいて構成できます。

  3. Cloud Storage バケットにオブジェクトを書き込むワークフローには、2 つの OK レスポンスが必要です。最初の OK レスポンスは、メッセージがオブジェクトに正常に書き込まれたときに送信されます。2 番目の OK レスポンスは、メッセージを含むオブジェクトが確定したときに送信されます。メッセージがバケットに表示されるのは、そのメッセージを含む Cloud Storage オブジェクトが正常にファイナライズされた後です。

  4. 書き込みオペレーション中にエラーが発生した場合、Pub/Sub メッセージ自体に否定応答が行われます。 メッセージは再送信されます。メッセージ書き込みオペレーションが十分な回数失敗し、サブスクリプションにデッドレター トピックが構成されている場合、メッセージはデッドレター トピックに移動します。

Cloud Storage サブスクリプションのプロパティ

Cloud Storage サブスクリプションを作成するときに、追加のプロパティを指定する必要があります。これらのプロパティには、一般的なサブスクリプション プロパティ、ファイル名と形式の要件、ストレージ要件などが含まれます。 これらのプロパティの詳細については、Cloud Storage サブスクリプション プロパティをご覧ください。

Pub/Sub サービス アカウントの権限

Cloud Storage サブスクリプションを作成するには、Pub/Sub サービス アカウントに、特定の Cloud Storage バケットへの書き込みとバケットのメタデータの読み取りを行う権限が付与されている必要があります。

詳細については、Pub/Sub サービス アカウントに Cloud Storage のロールを割り当てるをご覧ください。

メッセージ エラーの処理

Pub/Sub メッセージを Cloud Storage バケットに書き込むことができない場合、メッセージの確認応答はできません。 このような配信不能メッセージを転送するには、Cloud Storage のサブスクリプションでデッドレター トピックを構成します。

Pub/Sub が Cloud Storage にメッセージを書き込むことができない場合、Pub/Sub は push バックオフ動作と同様の方法でメッセージの配信を解除します。

割り当て

割り当て上限は、各リージョンの Cloud Storage サブスクライバーのスループットに適用されます。Cloud Storage サブスクリプションの割り当てについては、Pub/Sub の割り当てと上限のエクスポート サブスクライバーの割り当て上限をご覧ください。

料金

クラウドストレージのサブスクリプションの価格については、Pub/Sub の価格ページをご覧ください。

次のステップ