クライアント ライブラリを使用して Pub/Sub でメッセージをパブリッシュおよび受信する
Pub/Sub サービスを使用すると、アプリケーションはメッセージを非同期で、確実かつ迅速に交換できます。 イベントの順序は次のとおりです。
- データのプロデューサーは Pub/Sub のトピックにメッセージをパブリッシュします。
- サブスクライバー クライアントがそのトピックへのサブスクリプションを作成してメッセージを受け取ります。
Pub/Sub 環境は、Google Cloud Console、Cloud Shell、クライアント ライブラリ、REST API のいずれかを使用して設定できます。このページでは、クライアント ライブラリを使用して Pub/Sub でメッセージをパブリッシュする方法について説明します。
Pub/Sub では、高レベルと低レベルの自動生成クライアント ライブラリが提供されます。このクイックスタートではデフォルトで、高レベルのクライアント ライブラリをおすすめします。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Pub/Sub API を有効にします。
gcloud services enable pubsub.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Pub/Sub API を有効にします。
gcloud services enable pubsub.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
クライアント ライブラリのインストール
次のサンプルは、クライアント ライブラリのインストール方法を示しています。
Python
Python 開発環境の設定の詳細については、Python 開発環境設定ガイドをご覧ください。
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
C++ ライブラリのインストールの詳細については、GitHub README
をご覧ください。
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
Node.js
npm install --save @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
トピックとサブスクリプションを作成する
トピックを作成すると、トピックのサブスクライブやパブリッシュができます。
次の gcloud pubsub topics create コマンドを使用して、my-topic
という名前のトピックを作成します。トピックの名前は、チュートリアルの残りの部分で参照されるため、変更しないでください。
gcloud pubsub topics create my-topic
サブスクリプションを作成するには、gcloud pubsub subscriptions create コマンドを使用します。サブスクライバー アプリケーションで使用できるのは、サブスクリプションの作成後にトピックにパブリッシュしたメッセージだけです。
gcloud pubsub subscriptions create my-sub --topic my-topic
トピックとサブスクリプションの命名の詳細については、リソース名をご覧ください。
メッセージをパブリッシュする
次のサンプルを実行する前に、コード内にマークされている必要な値について、コメントを解除して入力します。これは、サンプルを前の手順で作成したプロジェクトと Pub/Sub リソースにリンクするために必要です。
トピック ID には my-topic
を使用します。
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
メールの受信
パブリッシュしたばかりのメッセージを pull するようにサブスクライバーを設定します。すべてのサブスクライバーは構成可能な時間の範囲内で各メッセージに確認応答を返信する必要があります。確認応答がなかったメッセージは再配信されます。Pub/Sub は、すべてのメッセージがサブスクライバーに対して少なくとも 1 回は送信されるように、メッセージを複数回配信することがあります。
次のサンプルを実行する前に、コード内にマークされている必要な値について、コメントを解除して入力します。これは、サンプルを前の手順で作成したプロジェクトと Pub/Sub リソースにリンクするために必要です。
サブスクリプション ID には my-sub
を使用します。
メッセージを pull する方法を示すその他の例については、クライアント ライブラリのコードサンプルをご覧ください。
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
いかがでしたか
クリーンアップ(オプション)
- このガイドで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、コマンドラインを使用してトピックとサブスクリプションを削除します。
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。
gcloud auth application-default revoke
-
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke
次のステップ
このページで説明する Pub/Sub のコンセプトについてさらに学習する。
Pub/Sub サービスの基本を読む。
1 対多の Pub/Sub システムを構築する方法を学習する。このシステムでは、2 つの個別のサブスクライバー アプリケーションにパブリッシュするパブリッシャー アプリケーションが作成されます。
gCloud CLI またはコンソールを使用する別の Pub/Sub クイックスタートを試す。
Pub/Sub API について学習します。
Kotlin を使用して Pub/Sub を実行する方法を確認する。