サブスクライバーは、サブスクリプションを使用してトピックからメッセージを読み取ります。サブスクリプションを作成する際、サブスクリプションをトピックに接続します。1 つのトピックに多数のサブスクリプションを接続できます。
始める前に
サブスクリプションを作成する前に、Pub/Sub で利用可能なさまざまなサブスクリプションのタイプと、ビジネスニーズに適したサブスクリプションのタイプを理解してください。サブスクリプション タイプの選択をご覧ください。
選択したサブスクリプションのタイプと、そのタイプに関連付けられた固有のプロパティについての詳細は、以下をご覧ください。
サブスクリプション プロパティ
サブスクリプション プロパティは、サブスクリプションを作成または更新するときに設定できます。
以下に、すべてのタイプのサブスクリプションに共通するプロパティの一覧を示します。各サブスクリプション タイプに固有のプロパティについては、前のセクションで挙げたドキュメントをご覧ください。
メッセージ保持期間パブリッシュ後に Pub/Sub がメッセージを保持する期間を指定します。メッセージの保持期間が経過すると、Pub/Sub はメッセージの確認応答状態に関係なくメッセージを破棄する場合があります。メッセージ保持期間の間の確認済みメッセージの保持については、メッセージの再生と破棄をご覧ください。
- デフォルト値: 7 日
- 最小値: 10 分。
- 最大値: 7 日
確認済みメッセージを保持。確認済みメッセージは、指定されたメッセージ保持期間の間保持されます。メッセージのストレージ料金は加算されます。
有効期限サブスクライバーのアクティビティがない場合や、サブスクリプション プロパティを変更した場合は、サブスクリプションの有効期限が切れます。Pub/Sub がサブスクライバーのアクティビティを検出した場合、またはサブスクリプションのプロパティのいずれかを更新すると、サブスクリプション削除クロックが再起動されます。サブスクライバー アクティビティの例としては、オープン接続、アクティブな pull、正常に完了した push などがあります。有効期限はメッセージ保持期間より長くする必要があります。
- デフォルト値: 31 日
- 最小値: 1 日
- 最大値: 365 日サブスクリプションの有効期限が切れないようにするには、有効期限を
never
に設定します。
確認応答の期限。経過後に確認応答されていないメッセージが再送信される期限を指定します。
- デフォルト値: 10 秒
- 最小値: 10 秒
- 最大値: 10 分。
サブスクリプション フィルタ。フィルタリング式を含む文字列を指定します。サブスクリプションにフィルタがある場合、サブスクリプションはフィルタに一致するメッセージのみを配信します。ユーザーは属性でメッセージをフィルタできます。指定しない場合、サブスクリプションはメッセージをフィルタせず、サブスクライバーはすべてのメッセージを受信します。サブスクリプションのフィルタは更新できません。
メッセージの順序指定パブリッシャーが順序指定キーを使用してメッセージを送信し、メッセージの順序指定が設定されている場合、Pub/Sub はメッセージを順に配信します。設定されていない場合は、順序指定キーが存在しても、Pub/Sub がメッセージを順に配信しない可能性があります。
デッドレター トピック。設定した配信試行回数に達した後にメッセージを配信できない場合、またはサブスクライバーがメッセージを確認応答できない場合、メッセージはデッドレター トピックに再公開されます。詳しくは、デッドレター トピックへの転送をご覧ください。デッドレター トピックを設定する場合は、配信の最大試行回数も指定できます。デッドレター トピックがサブスクリプションとは異なるプロジェクトにある場合は、デッドレター トピックとともにプロジェクト ID も指定する必要があります。
- デフォルト値 = 5
- 最小値 = 5
- 最大値 = 100
再試行ポリシー確認応答期限が切れた場合、またはサブスクライバーが否定応答をした場合、Pub/Sub は指数バックオフを使用してメッセージを再度送信できます。再試行ポリシーが設定されていない場合、確認応答期限が切れるか、サブスクライバーから否定応答が返されると、Pub/Sub はメッセージを再送信します。
バックオフ期間の最大値が設定されている場合、デフォルトのバックオフ期間の最小値は 10 秒です。バックオフ期間の最小値が設定されている場合、デフォルトのバックオフ期間の最大値は 600 秒です。
指定できるバックオフ期間の最長値は 600 秒です。
1 回限りの配信。設定すると、Pub/Sub によって 1 回限りの配信の保証が履行されます。指定しない場合、サブスクリプションでメッセージごとに少なくとも 1 回の配信がサポートされます。
再試行ポリシー
サブスクリプションに再試行ポリシーがある場合、Pub/Sub は、指定したバックオフ期間の経過後に確認応答されていないメッセージを再送信します。Pub/Sub は、ベストエフォート ベースでバックオフ期間の経過後にメッセージを再送信します。そのため、最小バックオフ期間の経過前にメッセージが届く場合があります。
メッセージがバッチにまとまっている場合、次のいずれかが発生すると、Pub/Sub は指数バックオフを開始します。
- サブスクライバーにより、バッチ内のすべてのメッセージに対して否定応答が送信される。
- 確認応答期限が切れた。
バックオフ期間の経過後、Pub/Sub はバッチを再配信します。
push サブスクリプションからメッセージを受信すると、指数バックオフ期間ではなく push バックオフ期間の経過後に、Pub/Sub がメッセージを再配信する場合があります。push バックオフの期間が指数バックオフの期間よりも長い場合、Pub/Sub は push バックオフ期間の経過後に確認応答していないメッセージを再配信します。
サブスクリプションを作成する
サブスクリプションを作成するには、コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用します。
pull サブスクリプション
次のサンプルでは、pull 配信でサブスクリプションを作成する方法を示します。
Console
pull サブスクリプションの作成は、次の手順で行います。
- コンソールで [サブスクリプション] ページに移動します。
- [サブスクリプションを作成] をクリックします。
- [サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプションがトピックからメッセージを受信します。
- [配信タイプ] は [Pull] のままにします。
- 他のデフォルト値はすべて保持します。
- [作成] をクリックします。
[トピック] セクションからサブスクリプションを作成することもできます。このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
- コンソールで [トピック] ページに移動します。
- サブスクリプションを作成するトピックの横の more_vert をクリックします。
- コンテキスト メニューから [サブスクリプションを作成] を選択します。
- [サブスクリプション ID] を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- [配信タイプ] は [Pull] のままにします。
- 他のデフォルト値はすべて保持します。
- [作成] をクリックします。
gcloud
pull サブスクリプションを作成するには、gcloud pubsub subscriptions create
コマンドを実行します。
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ [--ack-deadline=ACK_DEADLINE] \ [--dead-letter-topic=DEAD_LETTER_TOPIC_ID \ --dead-letter-topic-project=DEAD_LETTER_TOPIC_PROJECT_ID \ [--expiration-period=EXPIRATION_PERIOD] \ --max-delivery-attempts=MAX_DELIVERY_ATTEMPTS] \ [--message-filter=FILTER] [--message-retention-duration=MESSAGE_RETENTION_DURATION] \ [--max-retry-delay=MAX_RETRY_DELAY] \ [--min-retry-delay=MIN_RETRY_DELAY] \ [--push-endpoint=PUSH_ENDPOINT]
REST
pull サブスクリプションを作成するには、projects.subscriptions.create
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得するには、gcloud auth application-default print-access-token を使用します。
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
リクエスト本文:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
ここで
レスポンス:
{ "name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": {}, "ackDeadlineSeconds": 10, "messageRetentionDuration": "604800s", "expirationPolicy": { "ttl": "2678400s" } }
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、Pub/Sub PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
push サブスクリプション
次のサンプルでは、push 配信でサブスクリプションを作成する方法を示します。デフォルトでは、サブスクリプションは pull 配信を使用します。
Console
push サブスクリプションを作成する際の手順は、次のとおりです。
- コンソールで [サブスクリプション] ページに移動します。
- [サブスクリプションを作成] をクリックします。
- [サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプションがトピックからメッセージを受信します。
- [配信タイプ] で [Push] を選択します。
- エンドポイント URL を指定します。
- 他のデフォルト値はすべて保持します。
- [作成] をクリックします。
[トピック] セクションからサブスクリプションを作成することもできます。このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
- コンソールで [トピック] ページに移動します。
- サブスクリプションを作成するトピックの横の more_vert をクリックします。
- コンテキスト メニューから [サブスクリプションを作成] を選択します。
- [サブスクリプション ID] を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- [配信タイプ] で [Push] を選択します。
- エンドポイント URL を指定します。
- 他のデフォルト値はすべて保持します。
- [作成] をクリックします。
REST
push サブスクリプションを作成するには、projects.subscriptions.create
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得するには、gcloud auth application-default print-access-token を使用します。
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
リクエスト本文:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID", // Only needed if you are using push delivery "pushConfig": { "pushEndpoint": "PUSH_ENDPOINT" } }
ここで
https://myproject.appspot.com/myhandler
レスポンス:
{ "name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": { "pushEndpoint": "https://PROJECT_ID.appspot.com/myhandler", "attributes": { "x-goog-version": "v1" } }, "ackDeadlineSeconds": 10, "messageRetentionDuration": "604800s", "expirationPolicy": { "ttl": "2678400s" } }
C++
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、Pub/Sub PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
BigQuery のサブスクリプション
次のサンプルでは、BigQuery 配信でサブスクリプションを作成する方法を示します。まず、Google が管理する Pub/Sub サービス アカウント(サービス エージェントとも呼ばれます)に適切なロールを割り当て、BigQuery サブスクリプションを作成します。
Pub/Sub サービス アカウントに BigQuery のロールを割り当てる
Pub/Sub は、プロジェクトごとにサービス アカウントを作成して service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com
形式で維持します。
BigQuery サブスクリプションを作成するには、Pub/Sub サービス アカウントに、特定の BigQuery テーブルへの書き込みと、テーブルのメタデータの読み取りを行う権限が必要です。
BigQuery データ編集者(roles/bigquery.dataEditor
)ロールと BigQuery メタデータ閲覧者(roles/bigquery.metadataViewer
)ロールを Pub/Sub サービス アカウントに付与します。
コンソールで [IAM] ページに移動します。
[Google 提供のロール付与を含む] を選択します。
名前: Pub/Sub サービス アカウントでフィルタします。
Pub/Sub サービス アカウントの [編集] をクリックします。
[権限の編集] ペインで、[別のロールを追加] をクリックします。
[ロールを選択] プルダウンで「
BigQuery
」と入力し、[BigQuery データ編集者のロール] を選択します。もう一度 [別のロールを追加] をクリックします。
[ロールを選択] プルダウンで「
BigQuery
」と入力し、[BigQuery メタデータ閲覧者のロール] を選択します。
BigQuery IAM の詳細については、BigQuery のロールと権限をご覧ください。
BigQuery サブスクリプションを作成する
Console
- コンソールで [サブスクリプション] ページに移動します。
- [サブスクリプションを作成] をクリックします。
- [サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプションがトピックからメッセージを受信します。
- [BigQuery への書き込み] として [配信タイプ] を選択します。
- BigQuery テーブルのプロジェクトを選択します。
- 既存のデータセットを選択するか、新規に作成します。
データセットの作成方法については、データセットの作成をご覧ください。
- 既存のテーブルを選択するか、新規に作成します。
テーブルの作成方法については、テーブルの作成をご覧ください。
- [作成] をクリックします。
[トピック] ページからサブスクリプションを作成することもできます。このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
- コンソールで [トピック] ページに移動します。
- サブスクリプションを作成するトピックの横にある more_vert をクリックします。
- コンテキスト メニューから [サブスクリプションを作成] を選択します。
- [BigQuery への書き込み] として [配信タイプ] を選択します。
- BigQuery テーブルのプロジェクトを選択します。
- 既存のデータセットを選択するか、新規に作成します。
データセットの作成方法については、データセットの作成をご覧ください。
- 既存のテーブルを選択するか、新規に作成します。
データセットの作成方法については、テーブルの作成をご覧ください。
- [作成] をクリックします。
gcloud
Pub/Sub サブスクリプションを作成するには、gcloud pubsub subscriptions create
コマンドを使用します。
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --bigquery-table=PROJECT_ID:DATASET_ID.TABLE_ID
次のように置き換えます。
- SUBSCRIPTION_ID: サブスクリプションの ID を指定します。
- TOPIC_ID: トピックの ID を指定します。このトピックにはスキーマが必要です。
- PROJECT_ID: プロジェクトの ID を指定します。
- DATASET_ID: 既存のデータセットの ID を指定します。データセットを作成するには、データセットの作成をご覧ください。
- TABLE_ID: 既存のテーブルの ID を指定します。トピックにスキーマがない場合、テーブルには data フィールドが必要です。テーブルを作成するには、スキーマ定義を含む空のテーブルを作成するをご覧ください。
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
配信方法を変更する
異なるサブスクリプション タイプ間で切り替えることができます。
Console
サブスクリプションを変更する際の手順は、次のとおりです。
- コンソールで [サブスクリプション] ページに移動します。
- 更新するサブスクリプションの横の more_vert をクリックします。
- [配信タイプ] で配信オプションを選択します。
- 必要に応じて、他のサブスクリプション プロパティを入力します。
- [更新] をクリックします。
gcloud
push エンドポイント URL を変更するには、gcloud pubsub subscriptions modify-push-config
コマンドを実行します。
gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
サブスクリプションが pull 配信をすでに使用している場合、push エンドポイントを設定すると配信方式がプッシュ push 配信に切り替わります。
push エンドポイントを空の文字列に変更すると、push 配信から pull 配信に切り替えることができます。
REST
サブスクリプションの push 構成を変更するには、projects.subscriptions.modifyPushConfig
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、gcloud auth application-default print-access-token
を使用します。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:modifyPushConfig Authorization: Bearer ACCESS_TOKEN
リクエスト本文:
{ "pushConfig": { "pushEndpoint": "PUSH_ENDPOINT" } }
ここで
https://myproject.appspot.com/myhandler
レスポンス:
リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
サブスクリプションの一覧表示
コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用して、Google Cloud プロジェクトのサブスクリプションを一覧表示できます。
Console
プロジェクトのサブスクリプションを表示するには、[サブスクリプション] ページに移動します。
gcloud
Google Cloud プロジェクトのサブスクリプションを一覧表示するには、gcloud pubsub subscriptions list
コマンドを実行します。
gcloud pubsub subscriptions list [--project=PROJECT_ID]
REST
プロジェクト内のサブスクリプションを一覧表示するには、projects.subscriptions.list
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、gcloud auth application-default print-access-token
を使用します。
GET https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions Authorization: Bearer ACCESS_TOKEN
ここで
レスポンス:
{ "subscriptions": [ { "name": "projects/PROJECT_ID/topics/mysubscription1", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": {}, "ackDeadlineSeconds": 10, "retainAckedMessages": true, "messageRetentionDuration": "604800s", "expirationPolicy": {} }, { "name": "projects/PROJECT_ID/topics/mysubscription2", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": { "pushEndpoint": "https://PROJECT_ID.appspot.com/myhandler", "attributes": { "x-goog-version": "v1" } }, "ackDeadlineSeconds": 10, "retainAckedMessages": true, "messageRetentionDuration": "604800s", "expirationPolicy": {} } ] }
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、Pub/Sub PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
コンソール、Google Cloud CLI、または Pub/Sub API を使用して、トピックにサブスクリプションを一覧表示できます。
Console
- コンソールで [トピック] ページに移動します。
- トピック ID を選択して、[トピックの詳細] ページを開きます。ページの [サブスクリプション] セクションには、トピックのサブスクリプションの一覧が表示されます。
gcloud
Google Cloud プロジェクトのサブスクリプションを一覧表示するには、gcloud pubsub topics list-subscriptions
コマンドを実行します。
gcloud pubsub topics list-subscriptions TOPIC_ID
REST
トピック内のサブスクリプションを一覧表示するには、projects.subscriptions.list
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、gcloud auth application-default print-access-token
を使用します。
GET https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID/subscriptions Authorization: Bearer ACCESS_TOKEN
ここで
レスポンス:
{ "subscriptions": [ "projects/PROJECT_ID/subscriptions/mysubscription1", "projects/PROJECT_ID/subscriptions/mysubscription2" ] }
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
トピックからサブスクリプションの接続を解除する
サブスクリプションを作成するとき、サブスクリプションをトピックに接続すると、サブスクライバーはサブスクリプションからメッセージを受信できます。サブスクライバーがメッセージの受信止めるには、トピックからサブスクリプションを切断します。
サブスクリプションを接続解除するには、トピックに対する pubsub.topics.detachSubscription
権限が必要です。サブスクリプションの接続解除は、サブスクリプションに対する権限なしで行えます。これは、サブスクリプションとは別のプロジェクトにあるトピックを管理する場合に使用します。詳細については、Pub/Sub のアクセス制御をご覧ください。
コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用して、トピックからサブスクリプションを接続解除できます。
Console
サブスクリプションを切断する手順は、次のとおりです。
コンソールで [トピック] ページに移動します。
サブスクリプションの接続を解除するトピックを選択します。
[サブスクリプション] タブで、接続解除するサブスクリプションを選択します。
[サブスクリプションの詳細] ページで [接続解除] をクリックします。
表示されたダイアログで、再度 [接続解除] をクリックします。
gcloud
サブスクリプションを接続解除するには、gcloud pubsub topics detach-subscription
コマンドを使用します。
gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
リクエストが成功すると、コマンドラインに確認メッセージが表示されます。
Detached subscription [SUBSCRIPTION_ID].
REST
サブスクリプションを切断するには、projects.subscriptions.detach
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得するには、gcloud auth application-default print-access-token
コマンドを使用します。
POST https://pubsub.googleapis.com/v1/subscriptions/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:detach Authorization: Bearer ACCESS_TOKEN
ここで
レスポンス:
リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、Pub/Sub PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
Pub/Sub サービスがトピックからサブスクリプションを接続解除するまで数分かかる場合があります。
Pub/Sub サービスがトピックからサブスクリプションを接続解除すると、Pub/Sub サービスは、サブスクリプション用に保持するメッセージをすべて削除します。サブスクリプションからこれらのメッセージを取得することや、サブスクリプションをトピックに再接続することはできません。Cloud プロジェクトの割り当てを解放するには、サブスクリプションを削除します。
サブスクリプションとトピックが異なる Cloud プロジェクトにある場合、Pub/Sub サービスは、両方のプロジェクトの監査ログにエントリを追加します。
サブスクリプションの削除
サブスクリプションの削除は、コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用して行います。
Console
- コンソールで [サブスクリプション] ページに移動します。
- 削除する定期購入を選択します。
- [削除] をクリックします。
gcloud
サブスクリプションを削除するには、gcloud pubsub subscriptions delete
コマンドを実行します。
gcloud pubsub subscriptions delete SUBSCRIPTION_ID
REST
サブスクリプションを削除するには、projects.subscriptions.delete
メソッドを使用します。
リクエスト:
リクエストは、Authorization
ヘッダー内のアクセス トークンにより認証を受ける必要があります。現在のアプリケーションのデフォルト認証情報のアクセス トークンを取得する場合は、gcloud auth application-default print-access-token
を使用します。
DELETE https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
ここで
レスポンス:
リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。
C++
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C++ 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C++ API のリファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある C# 向けの手順に従って設定を行ってください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Java 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Node.js 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、Pub/Sub PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Pub/Sub クイックスタート: クライアント ライブラリの使用にある Ruby 向けの手順に従って設定を行ってください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。
次のステップ
トピックに作成するサブスクリプション タイプを決定する。
gcloud
コマンドを使用して、サブスクリプションを作成または変更する。REST API を使用してサブスクリプションを作成または変更する。
BigQuery サブスクリプションのトラブルシューティングを行う。