Google Cloud Pub/Subをコンソールで試してみた

こんにちは、白々さじきです。

今回は、Google CloudのサービスのPub/Subを使ってみようと思います。

Pub/Subとは?

Pub/Subについては、公式ドキュメントで次のように記載されています。

Pub/Sub は、メッセージを生成するサービスを、それらのメッセージを処理するサービスと切り離す、非同期のスケーラブルなメッセージング サービスです。

Pub/Sub は、ストリーミング分析と、データを読み込んで配布するためのデータ統合パイプラインに使用されます。これは、サービスの統合を目的としたメッセージング指向のミドルウェア、または、タスクを同時に読み込むキューとしても使用されます。

要は、メッセージを送りたいサービス(パブリッシャー)と、そのメッセージを受け取って処理したいサービス(サブスクライバー)を、お互いを直接知らなくても繋ぐことができる仕組みです。

例えるなら、掲示板のようなものです。

パブリッシャーとは

「こういう情報がありますよ!」というメッセージを、トピックという名前の付いた掲示板に投稿します。誰がその情報を見るかは気にしません。

サブスクライバーとは

「この掲示板の情報に興味があります」と、サブスクリプションという形で登録します。すると、その掲示板に新しい情報が投稿されると、自動的に(または自分で見に行って)情報を受け取ることができます。

掲示板は、いつ見に行くか分からないのと同じように、サブスクライバーが確認するのも非同期で行われます。

Pub/Subを作ってみる

Pub/Subを公式ドキュメントのクイックスタートに沿って作成してみます。

まずは、「Set up a Google」をクリックし、画面の指示に従って GCP アカウントを選択した後、「Next」、「Done」の順に進んでください。

トピックの作成

チュートリアルによるとトピックは下記の手順でできるそうです。

  1. Google Cloud コンソールで、[Pub/Sub] ページに移動します。[Pub/Sub] に移動
  2. [トピック] ページで、[トピックを作成] をクリックします。
  3. 表示されたウィンドウで、[トピック ID] フィールドに「MyTopic」と入力します。残りのオプションはデフォルト値のままにして、[作成] をクリックします。

成功メッセージが表示されます: A new topic and a new subscription have been successfully created.

MyTopic というトピックと関連するデフォルトのサブスクリプション MyTopic-sub が作成されました。

下記の設定で作成をクリックしました。

成功すると下記のようにでます。これでトピックとデフォルトのサブスクリプションは完成です。

サブスクリプション

サブスクリプション単体の作成を行います。理由としては、デフォルト以外のサブスクリプションからもちゃんとデータの取得ができるかを確認するためです。

サブスクリプションの作成手順は下記です。

  1. [サブスクリプション] をクリックします。
  2. [サブスクリプション] ページで、[サブスクリプションを作成] をクリックします。
  3. [サブスクリプション ID] フィールドに、「MySub」と入力します。
  4. [Cloud Pub/Sub トピックを選択してください] で、プルダウン メニューから MyTopic トピックを選択します。
  5. 残りのオプションはデフォルト値のままにします。
  6. [作成] をクリックします。成功メッセージが表示されます: Subscription successfully added.
  7. [トピック] ページをクリックし、[MyTopic] をクリックします。

下図のように設定します。

この後画面下の「作成」をクリックすると作成できます。

トピックにメッセージをパブリッシュしてみる

次は、サブスクリプションからpullするデータを作成します。先ほど作った「MyTopic」にメッセージをパブリッシュしてみます。下記の手順で実施できるみたいです。ただし、メッセージ部分は「白々さじき」にしてみようと思います。

  1. Google Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。[トピック] に移動
  2. MyTopic トピックをクリックします。
  3. [MyTopic] ページで、[メッセージ] タブをクリックします。
  4. [メッセージをパブリッシュ] をクリックします。
  5. [メッセージ本文] ウィンドウで「Hello World」と入力します。
  6. [公開] をクリックします。パブリッシュが正常に行われた場合は、ページの下部に「メッセージを公開しました」というメッセージが表示されます。

下記の赤枠が4番の部分です。

赤枠をクリックすると下図のように出るので、メッセージの本文に文字列を記載し、「公開」をクリックします。

サブスクリプションからメッセージを pull する

実際にトピックで公開したメッセージをpullしてみましょう。手順は下記です。

  1. Google Cloud コンソールで、[Pub/Sub サブスクリプション] ページに移動します。サブスクリプションに移動
  2. [メッセージ] タブで、[Pull] をクリックします。

Pullを押す前はまだメッセージが何もないです。

実際に押してみると下図のように表示されます。

また、2つ目のサブスクリプションでも問題なく取得できました。

取得できるメッセージには、メッセージの本文とメッセージの公開時刻が含まれます。

クリーンアップ

最後に、今回作成したリソースを削除してクリーンアップしましょう。削除手順は以下のとおりです。

  1. [トピック] ページに移動します。
  2. MyTopic の横にあるチェックボックスをオンにして、[削除] をクリックします。
  3. 確認ウィンドウの手順を完了して、トピックを完全に削除します。

下図の赤枠をクリックすると削除モーダルが開きます。

下図の「削除」をクリックすると削除できます。

これだけだとサブスクリプションが削除されないので、サブスクリプションのページに移動して同じことをすると終わりです。

まとめ

今回は、Pub/Subを実際に作成してサブスクリプションにメッセージを送ってみました。

今回はコンソール操作だけで Pub/Sub を確認しましたが、今後はコードや他のサービスからの呼び出しも試してみたいと思います。

サポートのお願い

下記リンクからお買い物いただけると、ブログ運営のための費用が増え、有料サービスを利用した記事作成が可能になります。ご協力よろしくお願いします!

コメント

タイトルとURLをコピーしました