arrow_back

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

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

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

ラボ 40分 universal_currency_alt 無料 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

GSP095

Google Cloud セルフペース ラボ

概要

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 をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

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

出力:

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

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: 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

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

name: projects/qwiklabs-gcp-3450558d2b043890/topics/myTopic --- name: projects/qwiklabs-gcp-3450558d2b043890/topics/Test2 --- name: projects/qwiklabs-gcp-3450558d2b043890/topics/Test1
  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

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

3 つの列に Data、Message_ID、Attributes という見出しが付いた表。Data 列には「パブリッシャーの好きな食べ物は <FOOD> です」と記載されている。

何が起きているのでしょうか。トピックに 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 --auto-ack --limit=3

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

3 つの列に Data、Message_ID、Attributes という見出しが付いた表。Data 列には 3 行のデータが記載されている。

ここでは、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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

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

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

ありがとうございます。

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