このドキュメントでは、pull サブスクリプションを作成する方法について説明します。pull サブスクリプションを作成するには、 コンソール Google Cloud 、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用できます。
始める前に
- サブスクリプションについて確認する。
- ビジネスで 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 サブスクリプションを作成する手順は次のとおりです。
コンソール Google Cloud で [**サブスクリプション**] ページに移動します。
[サブスクリプションを作成] をクリックします。
[サブスクリプション ID] フィールドに名前を入力します。
サブスクリプションの指定方法については、 トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。
[Pub/Sub トピック] リストで、サブスクリプションの読み取り元となるトピックを選択します。
[配信タイプ] で、[pull] を選択します。
省略可: [変換] セクションで、1 つ以上の 単一メッセージ変換(SMT)を追加します。詳細については、 SMT を使用してサブスクリプションを作成するをご覧ください。
省略可: [フィルタ] フィールドに、サブスクリプションからメッセージをフィルタするフィルタ式を入力します。詳細については、 サブスクリプションからメッセージをフィルタするをご覧ください。
[**再試行ポリシー**] でオプションを選択します。詳細については、 サブスクリプションの再試行ポリシーをご覧ください。
省略可: デッドレター トピックを 有効にして、配信不能なメッセージを受信します。
[デッド レタリング] チェックボックスをオンにします。
[デッドレター トピック] リストで、デッドレター トピックを選択または作成します。
[配信の最大試行回数] フィールドに、配信の最大試行回数を入力します。
省略可: [配信プロパティ] セクションで、次の配信オプションを有効または無効にします。
省略可: [確認応答の期限] セクションで、サブスクライバーがメッセージを処理して確認応答を行う期限を設定します。詳細については、 リース管理で確認応答時間を延長するをご覧ください。
省略可: [有効期間オプション] セクションで、サブスクリプションがメッセージを保持する期間を構成します。
[メッセージ保持期間] セクションで、確認応答されていないメッセージが保持される期間を指定します。
確認応答されていないメッセージだけでなく、確認応答済みのメッセージも保持する場合は、[確認応答済みメッセージを保持する] チェックボックスをオンにします。
詳細については、 サブスクリプションのメッセージ保持を構成するをご覧ください。
省略可: [有効期限] でオプションを選択します。
サブスクリプションの有効期限を設定するには、[この日数が経過すると有効期限が切れる] チェックボックスをオンにします。Pub/Sub がサブスクリプションを削除するまで、サブスクリプションが非アクティブのままにできる日数を入力します。
サブスクリプションの有効期限を無効にするには、[有効期限なし] チェックボックスをオンにします。
詳細については、 サブスクリプションの有効期限をご覧ください。
[作成] をクリックします。
サブスクリプションは、[トピック] セクションから作成することもできます。 このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
コンソール Google Cloud で [**トピック**] ページに移動します。
サブスクリプションを作成するトピックの横にある more_vert をクリックします。
コンテキスト メニューから [サブスクリプションを作成] を選択します。
[サブスクリプションをトピックに追加] ページで、前の手順で説明した手順を完了します。トピック ID は自動的に入力されます。
gcloud
-
コンソール Google Cloud で Cloud Shell をアクティブにします。
コンソールの下部にある 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 を使用してサブスクリプションを作成または変更する。