Create a topic

進行状況を確認

/ 50

Create a subscription

進行状況を確認

/ 50

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP094

Google Cloud セルフペース ラボ

概要

Pub/Sub サービスを使用すると、アプリケーションはメッセージを非同期で、確実かつ迅速に交換できます。仕組みとしては、データのプロデューサーが Cloud Pub/Sub トピックにメッセージをパブリッシュした後、サブスクライバー クライアントがそのトピックへのサブスクリプションを作成してメッセージを受け取ります。Cloud Pub/Sub は、配信できなかったメッセージを最大 7 日間確実に保持します。

このラボでは、Pub/Sub で Python クライアント ライブラリを使ってメッセージをパブリッシュする方法を学びます。

演習内容

このラボで行うことは以下のとおりです。

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

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 をアクティブにする」アイコン をクリックします。

  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 の概要ガイドをご覧ください。

タスク 1. 仮想環境を作成する

Python 仮想環境を使用して、パッケージのインストール先をシステムとは別の場所にします。

  1. virtualenv 環境をインストールします。
sudo apt-get install -y virtualenv
  1. 仮想環境をビルドします。
python3 -m venv venv
  1. 仮想環境をアクティブにします。
source venv/bin/activate

タスク 2. クライアント ライブラリをインストールする

  1. 以下を実行してクライアント ライブラリをインストールします。
pip install --upgrade google-cloud-pubsub
  1. GitHub リポジトリをクローンしてサンプルコードを入手します。
git clone https://github.com/googleapis/python-pubsub.git
  1. ディレクトリに移動します。
cd python-pubsub/samples/snippets

タスク 3. Pub/Sub - 基本情報

Pub/Sub は、非同期のグローバル メッセージング サービスです。Pub/Sub では、トピック、パブリッシュ、サブスクライバーという 3 つのキーワードが頻出します。

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

パブリッシャーは、メッセージを Pub/Sub トピックに push(パブリッシュ)します。サブスクライバーは、トピックのスレッドへのサブスクリプションを作成し、そのトピックからメッセージを pull するか、push サブスクリプション用の webhook を構成します。すべてのサブスクライバーは、構成可能な時間の範囲内で各メッセージに確認応答を返信する必要があります。

まとめると、パブリッシャーはメッセージを作成してトピックに送信し、サブスクライバーはトピックへのサブスクリプションを作成してトピックからメッセージを受け取ります。

Google Cloud の Pub/Sub

Pub/Sub は Cloud Shell にプリインストールされているので、このサービスを利用するために必要なインストールおよび構成はありません。このラボでは、Python を使用してトピックとサブスクライバーを作成してから、メッセージを表示します。メッセージをトピックにパブリッシュするには、gcloud コマンドを使用します。

タスク 4. トピックを作成する

Pub/Sub にデータをパブリッシュするには、トピックを作成してから、トピックへのパブリッシャーを構成します。

  1. Cloud Shell ではプロジェクト ID が自動的に環境変数 GOOGLE_CLOUD_PROJECT に格納されます。
echo $GOOGLE_CLOUD_PROJECT
  1. 出力が接続詳細のプロジェクト ID と同じであることを確認します。

publisher.py は、Cloud Pub/Sub API を使ってトピックに対して基本的なオペレーションを実行する方法を示すスクリプトです。次のコマンドで publisher スクリプトの内容を確認します。

cat publisher.py 注: 代わりに、Cloud Shell にインストールされている nano や vim などの shell エディタを使用するか、Cloud Shell コードエディタを使用して python-pubsub/samples/snippets/publisher.py を表示できます。
  1. publisher スクリプトについて詳しくは、次のコマンドを実行してください。
python publisher.py -h

出力例:

usage: publisher.py [-h] project {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} ... このアプリケーションは Cloud Pub/Sub API を使ってトピックに対して基本的なオペレーションを実行する方法を示します。 詳細については、/pubsub の下にある README.md と、https://cloud.google.com/pubsub/docs にあるドキュメントをご覧ください。 positional arguments: project Google Cloud プロジェクト ID {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} list 指定したプロジェクト内のすべての Pub/Sub トピックを一覧参照します。 create 新しい Pub/Sub トピックを作成します。 delete 既存の Pub/Sub トピックを削除します。 publish 複数のメッセージを Pub/Sub トピックにパブリッシュします。 publish-with-custom-attributes カスタム属性を使用して、複数のメッセージを Pub/Sub トピックに パブリッシュします。 publish-with-futures 複数のメッセージを Pub/Sub トピックにパブリッシュして、 メッセージ ID を出力します。 publish-with-error-handler エラーハンドラを使用して複数のメッセージを Pub/Sub トピックに パブリッシュします。 publish-with-batch-settings 一括設定を使用して複数のメッセージを Pub/Sub トピックに パブリッシュします。 optional arguments: -h, --help このヘルプ メッセージを表示して終了します。
  1. publisher スクリプトを実行して Pub/Sub トピックを作成します。
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

出力例:

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

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

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Pub/Sub トピックが正常に作成されている場合は、評価スコアが表示されます。

トピックを作成します。
  1. このコマンドは、指定したプロジェクトのすべての Pub/Sub トピックのリストを返します。
python publisher.py $GOOGLE_CLOUD_PROJECT list

出力例:

name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

作成したトピックを Cloud コンソールで確認することもできます。

  1. ナビゲーション メニュー > [Pub/Sub] > [トピック] に移動します。

MyTopic が表示されます。

タスク 5. サブスクリプションを作成する

  1. subscriber.py スクリプトを使用して、トピックの Pub/Sub サブスクリプションを作成します。
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

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

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Pub/Sub サブスクリプションが正常に作成されている場合は、評価スコアが表示されます。

サブスクリプションを作成する
  1. このコマンドは、指定したプロジェクトのサブスクライバーのリストを返します。
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

作成したサブスクリプションが 1 つなので、表示されるサブスクリプションは 1 つだけです。

出力例:

projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
  1. 作成したサブスクリプションをコンソールで確認します。左側のペインで [サブスクリプション] をクリックします。サブスクリプション名とその他の詳細情報が表示されます。

  2. subscriber スクリプトについて詳しくは、次のコマンドを実行します。

python subscriber.py -h

出力:

usage: subscriber.py [-h] project {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} ... このアプリケーションは Cloud Pub/Sub API を使ってサブスクリプションに対して基本的なオペレーションを実行する方法を示します。 詳細については、/pubsub の下にある README.md と、https://cloud.google.com/pubsub/docs にあるドキュメントをご覧ください。 positional arguments: project Google Cloud プロジェクト ID {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} list_in_topic 指定したトピックのすべてのサブスクリプションを一覧表示します。 list_in_project 現在のプロジェクト内のすべてのサブスクリプションを一覧表示します。 create 指定したトピックに新しい pull サブスクリプションを作成します。 create-push 指定したトピックに新しい push サブスクリプションを作成します。 delete 既存の Pub/Sub トピックを削除します。 update 既存の Pub/Sub サブスクリプションの push エンドポイント URL を更新します。トピックなど、サブスクリプションの 特定のプロパティは変更できないことに注意してください。 receive pull サブスクリプションからメッセージを受け取ります。 receive-custom-attributes pull サブスクリプションからメッセージを受け取ります。 receive-flow-control フロー制御を使用して pull サブスクリプションからメッセージを 受け取ります。 receive-synchronously メッセージを同時に pull します。 listen_for_errors pull サブスクリプションからメッセージを受け取り、エラーを キャッチします。 optional arguments: -h, --help このヘルプ メッセージを表示して終了します。

タスク 6. メッセージをパブリッシュする

MyTopic(トピック)と MyTopic へのサブスクリプション(MySub)の設定が完了したので、gcloud コマンドを使って MyTopic にメッセージをパブリッシュします。

  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 を高く評価しています"

タスク 7. メッセージを表示する

MyTopic にメッセージをパブリッシュできたので、MySub を使ってメッセージを pull して表示します。

  1. MySub を使って MyTopic からメッセージを pull します。
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

出力例:

Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub Received message: Message { data: 'パブリッシャーは Pub/Sub を高く評価しています' attributes: {} } Received message: Message { data: 'Hello' attributes: {} } Received message: Message { data: "パブリッシャーの名前はカオルです" attributes: {} } Received message: Message { data: 'パブリッシャーの好きな食べ物はチーズです' attributes: {} }
  1. リッスンを停止するには Ctrl+C キーを押します。

タスク 8. 理解度チェック

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

お疲れさまでした

Python を使用して Pub/Sub トピックを作成してトピックにパブリッシュし、サブスクリプションを作成しました。次に、サブスクリプションを使用して、トピックからデータを pull しました。

次のステップと詳細情報

Pub/Sub Lite は、予測可能なトラフィック パターンを持つメッセージング システム用のゾーンサービスとして Pub/Sub を補完します。1 秒あたり 1 MiB~1 GiB のメッセージをパブリッシュする場合は、Pub/Sub Lite のほうが、大量のイベントを取り込む費用を抑えられます。Pub/Sub Lite は次のラボでお試しいただけます。

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

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

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

マニュアルの最終更新日: 2024 年 2 月 13 日

ラボの最終テスト日: 2023 年 9 月 22 日

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

始める前に

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

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名とパスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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