コンテンツにスキップ

Pub/Sub Emulator をローカルに導入して使う

Google Cloud の Pub/Sub を使うアプリケーションをローカルで開発・テストするために、Pub/Sub Emulator を使ってみました。以下、エミュレータをインストールして起動し、環境変数で接続先を切り替えるまでの手順を順に説明します。

Pub/Sub Emulator とは

Pub/Sub エミュレータの位置づけを、Google Cloud のPub/Sub エミュレータのドキュメントから引用します。

アプリケーションをローカルで開発してテストするには、Pub/Sub エミュレータを使用できます。これにより、本番環境の Pub/Sub サービスのローカル エミュレーションを可能にします。Pub/Sub エミュレータは Google Cloud CLI を使用して実行します。

エミュレータを起動してから環境変数を設定すると、アプリケーションの接続先が本番環境の Pub/Sub サービスからエミュレータに切り替わります。作成した topic や subscription、publish したメッセージが保持されるのは、エミュレータのセッションが続く間だけです。

インストール

同じドキュメントのインストール手順に沿って、Google Cloud CLI がインストール済みの環境で Pub/Sub エミュレータをインストールします。エミュレータを使う前提条件として、ドキュメントは次の 4 つを挙げています。

  • Python 開発環境の設定
  • JDK のインストール
  • Google Cloud CLI のインストール
  • Cloud クライアント ライブラリを使用したアプリケーションの構築
gcloud components install pubsub-emulator
gcloud components update

起動

gcloud beta emulators pubsub start

このコマンドで、Pub/Sub エミュレータがローカルマシン上で起動します。Google Cloud 上にリソースを作ることなく、topic や subscription を作成したり、publish/subscribe を試したりできます。

環境変数の設定

環境変数の設定について、ドキュメントの環境変数を設定するの節は次のように説明しています。

エミュレータを起動した後、アプリケーションが Pub/Sub ではなくエミュレータに接続するように環境変数を設定する必要があります。これらの環境変数は、アプリケーションの実行に使用するマシンに設定します。

エミュレータを起動するたびに、環境変数を設定し直す必要があります。環境変数は動的に割り当てられるポート番号に依存しており、この番号がエミュレータを再起動するたびに変わる可能性があるためです。

$(gcloud beta emulators pubsub env-init)

動作確認

公式ドキュメントの手順に沿って作業を進め、topic と subscription を作成してメッセージを publish/subscribe できることを確認しました。