Cloud Pub/Sub のチュートリアル

このシンプルなチュートリアルでは、Cloud Pub/Sub トリガーを用いてバックグラウンド Cloud Function で書き込み、デプロイ、トリガーを行う方法について説明していきます。Cloud Pub/Sub の詳細については、Cloud Pub/Sub のドキュメントをご覧ください。

目標

料金

このチュートリアルでは、以下を含む、Cloud Platform の有料コンポーネントを使用します。

  • Google Cloud Functions
  • Google Cloud Pub/Sub

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。

Cloud Platform を初めて使用する方は、無料トライアルをご利用いただけます。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

  4. Cloud Functions と Cloud Pub/Sub API を有効にします。

    APIを有効にする

  5. Cloud SDK をインストールして初期化します。
  6. gcloud コンポーネントを更新し、インストールします。
    gcloud components update &&
    gcloud components install beta
  7. Node.js 開発用に環境を準備します。

    セットアップ ガイドに移動

アプリケーションの準備

  1. アプリケーション コードとなるディレクトリをローカル システム上で作成します。

    Linux / Mac OS X

    ディレクトリを作成します。

    mkdir ~/gcf_pubsub

    そのディレクトリに移動します。

    cd ~/gcf_pubsub

    Windows(CMD)

    ディレクトリを作成します。

    mkdir %HOMEDRIVE%%HOMEPATH%\gcf_pubsub

    そのディレクトリに移動します。

    cd %HOMEDRIVE%%HOMEPATH%\gcf_pubsub

  2. 次の内容を含む gcf_pubsub ディレクトリに index.js ファイルを作成します。

    Node.js

    /**
     * Background Cloud Function to be triggered by Pub/Sub.
     *
     * @param {object} event The Cloud Functions event.
     * @param {function} callback The callback function.
     */
    exports.helloPubSub = (event, callback) => {
      const pubsubMessage = event.data;
      const name = pubsubMessage.data ? Buffer.from(pubsubMessage.data, 'base64').toString() : 'World';
    
      console.log(`Hello, ${name}!`);
    
      callback();
    };

    helloPubSub 関数は、モジュールによってエクスポートされ、関数のトリガー トピックにメッセージが公開された時点で実行されます。

関数のデプロイ

Cloud Pub/Sub トリガーを使用して helloPubSub 関数をデプロイするには、gcf_pubsub ディレクトリで次のコマンドを実行します。

gcloud beta functions deploy helloPubSub --trigger-resource my-topic --trigger-event google.pubsub.topic.publish
引数 説明
--trigger-resource <name> 関数の登録先となる Cloud Pub/Sub トピックの名前。
--trigger-event <name> 関数が受け取るイベントタイプの名前。この場合は、Pub/Sub topic.publish イベントです。

関数をトリガーする

  1. メッセージを Cloud Pub/Sub トピックに公開する。この例では、メッセージは関数が挨拶に含める名前です。

    gcloud beta pubsub topics publish [YOUR_TOPIC_NAME] --message [YOUR_NAME]
    

    [YOUR_TOPIC_NAME] を Cloud Pub/Sub トピックの名前に置き換え、[YOUR_NAME] を任意の文字列に置き換えます。

  2. 実行した内容が完了していることをログで確認します。

    gcloud beta functions logs read --limit 50
    

クリーンアップ

このチュートリアルで使用するリソースについて、Google Cloud Platform アカウントに課金されないようにする手順は次のとおりです。

プロジェクトの削除

課金を停止する最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除する手順は次のとおりです。

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

Cloud Functions の削除

Cloud Functions を削除しても、Cloud Storage に保存されたリソースは削除されません。

Cloud Function を削除するには、次のコマンドを実行します。

gcloud beta functions delete [NAME_OF_FUNCTION]

ここで、[NAME_OF_FUNCTION] は削除する関数の名前です。

Google Cloud Platform Console から Cloud Functions を削除することもできます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Functions のドキュメント