arrow_back

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

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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

Lab 40分 universal_currency_alt No cost show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP095

Google Cloud セルフペース ラボ

概要

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

学習内容

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

  • Pub/Sub の基礎を学ぶ
  • Pub/Sub トピックの作成、削除、一覧表示を行う
  • Pub/Sub サブスクリプションの作成、削除、一覧表示を行う
  • トピックにメッセージをパブリッシュする
  • pull サブスクライバーを使用して、トピック メッセージを個別に出力する
  • pull サブスクライバーをフラグとともに使用して、複数のメッセージを出力する

要件

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

このラボを始める前に、Pub/Sub に関するご自身の習熟度を見直してください。以下に示すラボは、このラボよりも難易度が高く、Pub/Sub の知識を異なるクラウド サービスやユースケースに応用できます。

準備ができたら下にスクロールし、手順に沿ってラボ環境を設定します。

設定と要件

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

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

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

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

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

ラボを開始します。Google Cloud Shell コンソールにログインし、コマンドライン ツールを起動します。

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

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

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

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

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

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

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

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、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 の基本

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

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

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

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

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

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

Pub/Sub は Google 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 "Publisher's name is <YOUR NAME>" gcloud pubsub topics publish myTopic --message "Publisher likes to eat <FOOD>" gcloud pubsub topics publish myTopic --message "Publisher thinks Pub/Sub is awesome"

次に、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 "Publisher is starting to get the hang of Pub/Sub" gcloud pubsub topics publish myTopic --message "Publisher wonders if all messages will be pulled" gcloud pubsub topics publish myTopic --message "Publisher will have to test to find out"
  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 コマンド、フラグの基礎について学びました。

クエストを完了する

このセルフペース ラボは、「Baseline: Infrastructure」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。こちらのクエストに登録すると、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のラボを受講する

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

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

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

マニュアルの最終更新日: 2023 年 5 月 25 日

ラボの最終テスト日: 2023 年 5 月 25 日

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