チェックポイント
Create a Pub/Sub topic
/ 5
Create Pub/Sub Subscription
/ 5
Pub/Sub: Qwik Start - コマンドライン
GSP095
概要
Pub/Sub は、アプリケーションやサービスの間でイベントデータを交換するためのメッセージング サービスです。送信者と受信者を分離することにより、独立して作成されたアプリケーション間で、高可用性が確保された安全な通信を行えます。Pub/Sub によるメッセージングは低レイテンシで耐久性に優れており、デベロッパーは一般的に、非同期ワークフローの実装、イベント通知の配信、さまざまなプロセスやデバイスからのデータ ストリーミングに使用しています。
学習内容
このラボの内容は次のとおりです。
- Pub/Sub トピックとサブスクリプションの作成、削除、一覧表示
- トピックへのメッセージの公開
- pull サブスクライバーの使い方
前提条件
これは入門レベルのラボです。Pub/Sub の設定と利用の基礎を学ぶもので、この Google Cloud サービスを使用した経験がほとんど、またはまったくないことを前提としています。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
Pub/Sub の基本
前述のように、Pub/Sub は非同期のグローバル メッセージング サービスです。Pub/Sub では、topic
、publish
、subscription
という 3 つのキーワードが頻出します。
-
topic
は、複数のアプリケーションが共通のスレッドを通じて相互に接続できるようにする、共有文字列です。 -
パブリッシャーは、メッセージを Cloud Pub/Sub トピックに push(
publish
)します。 -
サブスクライバーは、そのトピックへの「
subscription
」を作成し、サブスクリプションからメッセージを pull するか、push サブスクリプション用の Webhook を構成します。メッセージは、構成可能な特定の期間内に各サブスクライバーが確認する必要があります。
まとめると、プロデューサーはトピックにメッセージをパブリッシュし、コンシューマはトピックに対するサブスクリプションを作成してメッセージを受信します。
タスク 1. Pub/Sub トピック
Pub/Sub は Cloud Shell にプリインストールされているので、このサービスを利用するために必要なインストールおよび構成はありません。
- 次のコマンドを実行して、
myTopic
というトピックを作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
- さらに、
Test1
とTest2
という 2 つのトピックを作成します。
- 作成した 3 つのトピックを表示するには、次のコマンドを実行します。
出力は次のようになります。
- クリーンアップを行います。次のコマンドを実行して、
Test1
とTest2
を削除します。
- もう一度
gcloud pubsub topics list
コマンドを実行して、上記のトピックが削除されたことを確認します。
出力は次のようになります。
タスク 2. Pub/Sub サブスクリプション
これでトピックの作成、表示、削除ができるようになりました。次はサブスクリプションの作業に進みます。
- 次のコマンドを実行して、トピック
myTopic
へのサブスクリプションmySubscription
を作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
-
myTopic
に 2 つのサブスクリプションを追加します。次のコマンドを実行して、Test1
とTest2
のサブスクリプションを作成します。
- 次のコマンドを実行して、myTopic へのサブスクリプションを一覧表示します。
出力は次のようになります。
理解度チェック
今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択問題を用意しました。正解を目指して頑張ってください。
- では、
Test1
とTest2
の各サブスクリプションを削除していきます。次のコマンドを実行します。
-
Test1
とTest2
の各サブスクリプションが削除されたことを確認します。もう一度list-subscriptions
コマンドを実行します。
出力は次のようになります。
タスク 3. Pub/Sub のパブリッシュと 1 つのメッセージの pull
次に、Pub/Sub トピックにメッセージをパブリッシュする方法を学習します。
- 次のコマンドを実行して、上で作成したトピック(
myTopic
)に「Hello」
というメッセージをパブリッシュします。
- さらにいくつかメッセージを
myTopic
にパブリッシュするため、次のコマンドを実行します(<YOUR NAME>
にはご自分の名前、<FOOD>
には好きな食べ物を指定します)。
次に、pull
コマンドを使用して、トピックからメッセージを取得します。pull コマンドはサブスクリプション ベースです。つまり、以前にトピック myTopic
へのサブスクリプション mySubscription
を設定したため、コマンドは正常に機能するはずです。
- 次のコマンドを使用して、さきほど Pub/Sub トピックからパブリッシュしたメッセージを pull します。
出力は次のようになります。
何が起きているのでしょうか。トピックに 4 つのメッセージをパブリッシュしたはずですが、1 つのメッセージしか出力されていません。
ここで、デベロッパーがつまづくことが多い pull
コマンドの機能の注意点を挙げておきましょう。
- フラグを指定せずに pull コマンドを使用すると、メッセージが 1 つだけ出力されます。これは、サブスクライブしているトピックに複数のメッセージがある場合も同じです。
- 特定のサブスクリプション ベースの pull コマンドから 1 つのメッセージが出力された後は、pull コマンドを使って同じメッセージに再びアクセスすることはできません。
-
上記の 2 点目の詳細を確認するために、最後のコマンドをさらに 3 回実行してみると、パブリッシュしたメッセージが順番に出力されることがわかります。
-
さらに 4 回目を実行すると、次のように、返すメッセージがないことが出力に示されます。
次の最後のセクションでは、flag
を指定して、トピックから複数のメッセージを pull する方法を学びます。
タスク 4. Pub/Sub でサブスクリプションからすべてのメッセージを pull する
直前の例でトピックからすべてのメッセージを pull したため、myTopic
にいくつかメッセージを入力します。
- 次のコマンドを実行します。
-
flag
をコマンドに追加すると、1 つのリクエストで 3 つのメッセージをすべて出力できます。
気づかなかったかもしれませんが、実はこれまでずっとフラグを使っていました。pull
コマンドの --auto-ack
の部分がフラグで、メッセージを枠内で表示する書式設定をこのフラグで行っていました。
さらに limit
も、pull するメッセージ数に上限を設定するフラグです。
- トピックが作成されるまで少し待ちます。次のように、
limit
フラグを指定して pull コマンドを実行します。
出力は次のようになります。
ここでは、Pub/Sub コマンドにフラグを追加して、より多くのメッセージを出力する方法について学び、Pub/Sub マスターへの道をまた一歩、前進しました。
お疲れさまでした
このラボでは、Pub/Sub のトピック、サブスクリプション、pull コマンド、フラグの基礎について学びました。
次のラボを受講する
このラボは、Google Cloud の多くの機能を体験できる「Qwik Start」と呼ばれるラボシリーズの一部です。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 2 月 13 日
ラボの最終テスト日: 2023 年 5 月 25 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。