このドキュメントでは、pull サブスクリプションを作成する方法について説明します。pull サブスクリプションを作成するには、 コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用できます。 Google Cloud
始める前に
- サブスクリプションについて確認する。
- ビジネスで pull サブスクリプションが必要かどうかを評価します。
- pull サブスクリプションの仕組みを理解します。
必要なロールと権限
pull サブスクリプションの作成に必要な権限を取得するには、管理者にプロジェクトに対するPub/Sub 編集者 (roles/pubsub.editor)IAM ロールを付与するよう依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには pull サブスクリプションの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
pull サブスクリプションを作成するには、次の権限が必要です。
-
pubsub.subscriptions.createプロジェクトに対する -
pubsub.topics.attachSubscriptionトピックに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
プロジェクト間のサブスクリプション
別のプロジェクトのトピックに対して 1 つのプロジェクトでサブスクリプションを作成する場合は、サブスクリプションを作成するプロジェクトに対する pubsub.subscriptions.create 権限と、トピックに対する pubsub.topics.attachSubscription 権限が必要です。
pull サブスクリプション プロパティ
pull サブスクリプションは、 一般的なサブスクリプション プロパティをすべてサポートしています。pull サブスクリプションは、次のセクションで説明する 1 回限りの配信 プロパティもサポートしています。
1 回限りの配信
1 回限りの配信。設定すると、Pub/Sub によって 1 回限りの配信の保証が履行されます。指定しない場合、サブスクリプションでメッセージごとに少なくとも 1 回の配信がサポートされます。
pull サブスクリプションを作成する
次のサンプルは、指定されたデフォルト設定を使用して、pull 配信でサブスクリプションを作成する方法を示しています。
Console
pull サブスクリプションの作成は、次の手順で行います。
コンソールで [**サブスクリプション**] ページに移動します。 Google Cloud
- [サブスクリプションを作成] をクリックします。
[サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、 トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプション はトピックからメッセージを受信します。
- [配信タイプ] を Pull として保持します。
- 他のすべてのデフォルト値は保持されます。
- [作成] をクリックします。
サブスクリプションは [トピック] セクションから作成することもできます。 このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
コンソールで [**トピック**] ページに移動します。 Google Cloud
- サブスクリプションを作成するトピックの横にあるmore_vertをクリックします。
- コンテキスト メニューから [サブスクリプションを作成] を選択します。
[サブスクリプション ID] を入力します。
サブスクリプションの指定方法については、 トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- [配信タイプ] を Pull として保持します。
- 他のすべてのデフォルト値は保持されます。
- [作成] をクリックします。
gcloud
-
コンソールで Cloud Shell をアクティブにします。 Google Cloud
コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。
-
pull サブスクリプションを作成するには、
gcloud pubsub subscriptions createコマンドを実行します。gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
次のように置き換えます。
SUBSCRIPTION_ID: 新しい pull サブスクリプションの名前または ID。TOPIC_ID: トピックの名前または ID。
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" }
ここで
- PROJECT_ID はプロジェクト ID です。
- SUBSCRIPTION_ID はサブスクリプション ID です。
- TOPIC_ID はトピック ID です。
レスポンス:
{
"name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID",
"topic": "projects/PROJECT_ID/topics/TOPIC_ID",
"pushConfig": {},
"ackDeadlineSeconds": 10,
"messageRetentionDuration": "604800s",
"expirationPolicy": {
"ttl": "2678400s"
}
}C++
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API リファレンス ドキュメントをご覧ください。
C#
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、Pub/Sub C# API リファレンス ドキュメントをご覧ください。
Go
次のサンプルでは、Go Pub/Sub クライアント ライブラリのメジャー バージョン(v2)を使用しています。v1 ライブラリをまだ使用している場合は、 v2 への移行ガイドをご覧ください。 v1 コードサンプルのリストについては、 非推奨のコードサンプルをご覧ください。
このサンプルを試す前に、 クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。 詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Node.ts
このサンプルを試す前に、 クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。 詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の PHP の設定手順を実施してください。詳細については、Pub/Sub PHP API リファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API リファレンス ドキュメントをご覧ください。
Ruby
次のサンプルでは、Ruby Pub/Sub クライアント ライブラリ v3 を使用しています。v2 ライブラリをまだ使用している場合は、 v3 への移行ガイドをご覧ください。 Ruby v2 コードサンプルのリストについては、 非推奨のコードサンプルをご覧ください。
このサンプルを試す前に、 クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。 詳細については、Pub/Sub Ruby API リファレンス ドキュメントをご覧ください。
pull サブスクリプションのモニタリング
Cloud Monitoring には、サブスクリプションを モニタリングするための指標がいくつか用意されています。
Pub/Sub に関連する使用可能なすべての指標のリストとその説明については、Pub/Sub のモニタリング ドキュメントをご覧ください。
Pub/Sub 内からサブスクリプションをモニタリングすることもできます。
次のステップ
- pull サブスクリプションからメッセージを受信する。
gcloudコマンドを使用して、サブスクリプションを作成または変更する。- REST API を使用してサブスクリプションを作成または変更する。