このドキュメントでは、pull サブスクリプションを作成する方法について説明します。pull サブスクリプションを作成するには、 Trusted Cloud コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用します。
始める前に
- サブスクリプションについて確認する。
- ビジネスで pull サブスクリプションが必要かどうかを評価します。
- pull サブスクリプションの仕組みを理解します。
必要なロールと権限
サブスクリプションを作成するには、プロジェクト レベルでアクセス制御を構成する必要があります。このセクションで後述するように、サブスクリプションとトピックが異なるプロジェクトにある場合は、リソースレベルの権限も必要です。
pull サブスクリプションの作成に必要な権限を取得するには、管理者にプロジェクトに対する Pub/Sub 編集者 (roles/pubsub.editor
)IAM ロールを付与するよう依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、pull サブスクリプションの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
pull サブスクリプションを作成するには、次の権限が必要です。
-
サブスクリプションから pull する:
pubsub.subscriptions.consume
-
サブスクリプションを作成する:
pubsub.subscriptions.create
-
サブスクリプションを削除する:
pubsub.subscriptions.delete
-
サブスクリプションを取得する:
pubsub.subscriptions.get
-
サブスクリプションを一覧表示する:
pubsub.subscriptions.list
-
サブスクリプションを更新する:
pubsub.subscriptions.update
-
サブスクリプションをトピックに接続する:
pubsub.topics.attachSubscription
-
サブスクリプションの IAM ポリシーを取得する:
pubsub.subscriptions.getIamPolicy
-
サブスクリプションの IAM ポリシーを構成する:
pubsub.subscriptions.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
別のプロジェクトのトピックに関連付けられているプロジェクトで pull サブスクリプションを作成する必要がある場合は、トピック管理者にトピックに対する Pub/Sub 編集者の (roles/pubsub.editor)
IAM ロールも付与するよう依頼してください。
pull サブスクリプション プロパティ
pull サブスクリプションを構成するときに、次のプロパティを指定できます。
共通の特徴
すべてのサブスクリプションで設定できる共通のサブスクリプション プロパティについて学習します。
1 回限りの配信
1 回限りの配信。設定すると、Pub/Sub によって 1 回限りの配信の保証が履行されます。指定しない場合、サブスクリプションでメッセージごとに少なくとも 1 回の配信がサポートされます。
pull サブスクリプションを作成する
次のサンプルは、指定されたデフォルト設定を使用して、pull 配信でサブスクリプションを作成する方法を示しています。
Console
pull サブスクリプションの作成は、次の手順で行います。
Trusted Cloud コンソールで、[サブスクリプション] ページに移動します。
- [サブスクリプションを作成] をクリックします。
[サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプションがトピックからメッセージを受信します。
- [配信タイプ] を Pull として保持します。
- 他のすべてのデフォルト値は保持されます。
- [作成] をクリックします。
[トピック] セクションからサブスクリプションを作成することもできます。このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
Trusted Cloud コンソールで、[トピック] ページに移動します。
- サブスクリプションを作成するトピックの横の more_vert をクリックします。
- コンテキスト メニューから [サブスクリプションを作成] を選択します。
[サブスクリプション ID] を入力します。
サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
- [配信タイプ] を Pull として保持します。
- 他のすべてのデフォルト値は保持されます。
- [作成] をクリックします。
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
pull サブスクリプションを作成するには、
gcloud pubsub subscriptions create
コマンドを実行します。gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
次のように置き換えます。
SUBSCRIPTION_ID
: 新しい pull サブスクリプションの名前または ID。TOPIC_ID
: トピックの名前または ID。
- PROJECT_ID はプロジェクト ID です。
- SUBSCRIPTION_ID はサブスクリプション 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" }
ここで
レスポンス:
{ "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 内からサブスクリプションをモニタリングすることもできます。
次のステップ
gcloud
コマンドを使用して、サブスクリプションを作成または変更する。- REST API を使用してサブスクリプションを作成または変更する。