arrow_back

Pub/Sub: Qwik Start - コマンドライン

ログイン 参加
700 以上のラボとコースにアクセス

Pub/Sub: Qwik Start - コマンドライン

ラボ 40分 universal_currency_alt 無料 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP095

概要

Pub/Sub は、アプリケーションやサービスの間でイベントデータを交換するためのメッセージング サービスです。送信者と受信者を分離することにより、独立して作成されたアプリケーション間で、高可用性が確保された安全な通信を行えます。Pub/Sub によるメッセージングは低レイテンシで耐久性に優れており、デベロッパーは一般的に、非同期ワークフローの実装、イベント通知の配信、さまざまなプロセスやデバイスからのデータ ストリーミングに使用しています。

学習内容

このラボの内容は次のとおりです。

  • Pub/Sub トピックとサブスクリプションの作成、削除、一覧参照
  • トピックへのメッセージの公開
  • pull サブスクライバーの使い方

前提条件

これは入門レベルのラボです。Pub/Sub の設定と利用の基礎を学ぶもので、この Google Cloud サービスを使用した経験がほとんど、またはまったくないことを前提としています。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

Pub/Sub の基本

前述のように、Pub/Sub は非同期のグローバル メッセージング サービスです。Pub/Sub では、topicpublishsubscription という 3 つのキーワードが頻出します。

  • topic は、複数のアプリケーションが共通のスレッドを通じて相互に接続できるようにする、共有文字列です。

  • パブリッシャーは、メッセージを Cloud Pub/Sub トピックに push(publish)します。

  • サブスクライバーは、そのトピックへの「subscription」を作成し、サブスクリプションからメッセージを pull するか、push サブスクリプション用の Webhook を構成します。メッセージは、構成可能な特定の期間内に各サブスクライバーが確認する必要があります。

まとめると、プロデューサーはトピックにメッセージをパブリッシュし、コンシューマーはトピックに対するサブスクリプションを作成してメッセージを受信します。

タスク 1. Pub/Sub トピック

Pub/Sub は Cloud Shell にプリインストールされているので、このサービスを利用するために必要なインストールおよび構成はありません。

  1. 次のコマンドを実行して、myTopic というトピックを作成します。
gcloud pubsub topics create myTopic

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

Pub/Sub トピックを作成する。
  1. さらに、Test1Test2 という 2 つのトピックを作成します。
gcloud pubsub topics create Test1 gcloud pubsub topics create Test2
  1. 作成した 3 つのトピックを表示するには、次のコマンドを実行します。
gcloud pubsub topics list

出力は次のようになります。

--- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/myTopic --- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/Test1 --- messageStoragePolicy: allowedPersistenceRegions: - us-central1 name: projects/qwiklabs-gcp-01-af5b4aaa2d32/topics/Test2
  1. クリーンアップを行います。次のコマンドを実行して、Test1Test2 を削除します。
gcloud pubsub topics delete Test1 gcloud pubsub topics delete Test2
  1. もう一度 gcloud pubsub topics list コマンドを実行して、上記のトピックが削除されたことを確認します。
gcloud pubsub topics list

出力は次のようになります。

--- name: projects/qwiklabs-gcp-3450558d2b043890/topics/myTopic

タスク 2. Pub/Sub サブスクリプション

これでトピックの作成、表示、削除ができるようになりました。次はサブスクリプションの作業に進みます。

  1. 次のコマンドを実行して、トピック myTopic へのサブスクリプション mySubscription を作成します。
gcloud pubsub subscriptions create --topic myTopic mySubscription

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

Pub/Sub サブスクリプションを作成する。
  1. myTopic に 2 つのサブスクリプションを追加します。次のコマンドを実行して、Test1Test2 のサブスクリプションを作成します。
gcloud pubsub subscriptions create --topic myTopic Test1 gcloud pubsub subscriptions create --topic myTopic Test2
  1. 次のコマンドを実行して、myTopic へのサブスクリプションを一覧参照します。
gcloud pubsub topics list-subscriptions myTopic

出力は次のようになります。

--- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/Test2 --- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/Test1 --- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/mySubscription

理解度チェック

今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択問題を用意しました。正解を目指して頑張ってください。

  1. では、Test1Test2 の各サブスクリプションを削除していきます。次のコマンドを実行します。
gcloud pubsub subscriptions delete Test1 gcloud pubsub subscriptions delete Test2
  1. Test1Test2 の各サブスクリプションが削除されたことを確認します。もう一度 list-subscriptions コマンドを実行します。
gcloud pubsub topics list-subscriptions myTopic

出力は次のようになります。

--- projects/qwiklabs-gcp-3450558d2b043890/subscriptions/mySubscription

タスク 3. Pub/Sub のパブリッシュと 1 つのメッセージの pull

次に、Pub/Sub トピックにメッセージをパブリッシュする方法を学習します。

  1. 次のコマンドを実行して、上で作成したトピック(myTopic)に「Hello」というメッセージをパブリッシュします。
gcloud pubsub topics publish myTopic --message "Hello"
  1. さらにいくつかメッセージを myTopic にパブリッシュするため、次のコマンドを実行します(<YOUR NAME> にはご自分の名前、<FOOD> には好きな食べ物を指定します)。
gcloud pubsub topics publish myTopic --message "パブリッシャーの名前は <YOUR NAME> です" gcloud pubsub topics publish myTopic --message "パブリッシャーの好きな食べ物は <FOOD> です" gcloud pubsub topics publish myTopic --message "パブリッシャーは Pub/Sub を高く評価しています"

次に、pull コマンドを使用して、トピックからメッセージを取得します。pull コマンドはサブスクリプション ベースです。つまり、以前にトピック myTopic へのサブスクリプション mySubscription を設定したため、コマンドは正常に機能するはずです。

  1. 次のコマンドを使用して、さきほど Pub/Sub トピックからパブリッシュしたメッセージを pull します。
gcloud pubsub subscriptions pull mySubscription --auto-ack

出力は次のようになります。

何が起きているのでしょうか。トピックに 4 つのメッセージをパブリッシュしたはずですが、1 つのメッセージしか出力されていません。

ここで、デベロッパーがつまづくことが多い pull コマンドの機能の注意点を挙げておきましょう。

  • フラグを指定せずに pull コマンドを使用すると、メッセージが 1 つだけ出力されます。これは、サブスクライブしているトピックに複数のメッセージがある場合も同じです。
  • 特定のサブスクリプション ベースの pull コマンドから 1 つのメッセージが出力された後は、pull コマンドを使って同じメッセージに再びアクセスすることはできません。
  1. 上記の 2 点目の詳細を確認するために、最後のコマンドをさらに 3 回実行してみると、パブリッシュしたメッセージが順番に出力されることがわかります。

  2. さらに 4 回目を実行すると、次のように、返すメッセージがないことが出力に示されます。

gcpstaging20394_student@cloudshell:~ (qwiklabs-gcp-3450558d2b043890)$ gcloud pubsub subscriptions pull mySubscription --auto-ack Listed 0 items.

次の最後のセクションでは、flag を指定して、トピックから複数のメッセージを pull する方法を学びます。

タスク 4. Pub/Sub でサブスクリプションからすべてのメッセージを pull する

直前の例でトピックからすべてのメッセージを pull したため、myTopic にいくつかメッセージを入力します。

  1. 次のコマンドを実行します。
gcloud pubsub topics publish myTopic --message "パブリッシャーは Pub/Sub のコツをつかみ始めています" gcloud pubsub topics publish myTopic --message "パブリッシャーはすべてのメッセージが pull されるか疑問に思っています" gcloud pubsub topics publish myTopic --message "パブリッシャーは確かめるためにテストする必要があります"
  1. flag をコマンドに追加すると、1 つのリクエストで 3 つのメッセージをすべて出力できます。

気づかなかったかもしれませんが、実はこれまでずっとフラグを使っていました。pull コマンドの --auto-ack の部分がフラグで、メッセージを枠内で表示する書式設定をこのフラグで行っていました。

さらに limit も、pull するメッセージ数に上限を設定するフラグです。

  1. トピックが作成されるまで少し待ちます。次のように、limit フラグを指定して pull コマンドを実行します。
gcloud pubsub subscriptions pull mySubscription --limit=3

出力は次のようになります。

ここでは、Pub/Sub コマンドにフラグを追加して、より多くのメッセージを出力する方法について学び、Pub/Sub マスターへの道をまた一歩、前進しました。

お疲れさまでした

このラボでは、Pub/Sub のトピック、サブスクリプション、pull コマンド、フラグの基礎について学びました。

次のラボを受講する

このラボは、Google Cloud の多くの機能を体験できる「Qwik Start」と呼ばれるラボシリーズの一部です。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 3 月 10 日

ラボの最終テスト日: 2025 年 3 月 10 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。