クライアント ライブラリを使用して Pub/Sub でメッセージをパブリッシュおよび受信する
Pub/Sub サービスを使用すると、アプリケーションはメッセージを非同期で、確実かつ迅速に交換できます。 イベントの順序は次のとおりです。
- データのプロデューサーは Pub/Sub のトピックにメッセージをパブリッシュします。
- サブスクライバー クライアントがそのトピックへのサブスクリプションを作成してメッセージを受け取ります。
Pub/Sub 環境は、Google Cloud Console、Cloud Shell、クライアント ライブラリ、REST API のいずれかを使用して設定できます。このページでは、クライアント ライブラリを使用して Pub/Sub でメッセージをパブリッシュする方法について説明します。
Pub/Sub では、高レベルと低レベルの自動生成クライアント ライブラリが提供されます。このクイックスタートではデフォルトで、高レベルのクライアント ライブラリをおすすめします。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成する
gcloud projects create PROJECT_ID
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
-
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
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
-
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
Maven を使用している場合は、次のものを pom.xml
ファイルに追加します。BOM の詳細については、Google Cloud Platform ライブラリ BOM をご覧ください。
Gradle を使用している場合は、次のものを依存関係に追加します。
sbt を使用している場合は、次のものを依存関係に追加します。
Visual Studio Code、IntelliJ または Eclipse を使用している場合は、次の IDE プラグインでプロジェクトにクライアント ライブラリを追加できます。
プラグインでは、サービス アカウントのキー管理などの追加機能も提供されます。詳細は各プラグインのドキュメントをご覧ください。
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
PHP
Ruby
メールの受信
パブリッシュしたばかりのメッセージを pull するようにサブスクライバーを設定します。すべてのサブスクライバーは構成可能な時間の範囲内で各メッセージに確認応答を返信する必要があります。確認応答がなかったメッセージは再配信されます。Pub/Sub は、すべてのメッセージがサブスクライバーに対して少なくとも 1 回は送信されるように、メッセージを複数回配信することがあります。
次のサンプルを実行する前に、コード内にマークされている必要な値について、コメントを解除して入力します。これは、サンプルを前の手順で作成したプロジェクトと Pub/Sub リソースにリンクするために必要です。
サブスクリプション ID には my-sub
を使用します。
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 を実行する方法を学習する。