クライアント ライブラリを使用して 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Pub/Sub API:
gcloud services enable pubsub.googleapis.com
-
Create local authentication credentials for your user account:
gcloud auth application-default login
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/pubsub.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
クライアント ライブラリのインストール
次のサンプルは、クライアント ライブラリのインストール方法を示しています。
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
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
次のステップ
このページで説明する Pub/Sub のコンセプトについてさらに学習する。
Pub/Sub サービスの基本を確認する。
1 対多の Pub/Sub システムを構築する方法を学習する。このシステムでは、2 つの個別のサブスクライバー アプリケーションにパブリッシュするパブリッシャー アプリケーションが作成されます。
gCloud CLI または コンソールを使用する別の Pub/Sub クイックスタートを試します。
Pub/Sub API について学習します。
Kotlin を使用して Pub/Sub を実行する方法を確認する。