Go Bookshelf アプリ

Bookshelf アプリは、以下の Google Cloud Platform プロダクトの使い方を説明する、Go で記述されたサンプル ウェブアプリです。

  • Google App Engine フレキシブル環境
  • Google Cloud SQL
  • Google Cloud Datastore
  • Google Cloud Storage
  • Google Cloud Pub/Sub
  • Google Compute Engine

このチュートリアルでは、Bookshelf アプリについて詳しく説明し、このアプリの各機能が、おなじみのテクノロジーや Cloud Platform の提供するサービスによって実装される仕組みを紹介します。

コントロールと書籍の表紙を表示する Bookshelf アプリのスクリーンショット

Bookshelf サンプルアプリは、書籍タイトルのコレクションを格納します。このアプリへのアクセス権があれば誰でもリストに書籍を追加できます。このサンプルアプリがユーザーに提供する機能は次のとおりです。

  • 書籍のリストを表示し、リストに書籍を追加する。または、リストから書籍を削除する。
  • 書籍の詳細情報を編集する。
  • 書籍の表紙画像をアップロードする。
  • 自分の Google アカウントでログインし、リストに追加した書籍を表示する。

目標

  • サンプルアプリのクローンを作成する。またはサンプルアプリをダウンロードする。
  • アプリをビルドし、ローカルマシンで実行する。
  • アプリを App Engine にデプロイする。
  • サンプルコードの内容を一通り理解する。
  • アプリが構造化データを格納する仕組みを理解する。
  • アプリが Google Cloud Storage にバイナリデータを格納する仕組みを理解する。
  • アプリがユーザーを認証する方法を理解する。
  • Google Cloud Platform Console に表示されるイベントログをアプリが作成する仕組みを理解する。
  • アプリが Google Cloud Pub/Sub を使用してタスクをバックグラウンド ワーカーに送信する仕組みを理解する。

費用

このチュートリアルでは、Google Compute Engine を含む、Cloud Platform の課金対象となるコンポーネントを使用しています。

このチュートリアルは複数のステップで構成され、各ステップはそれぞれ別のページに記載されています。チュートリアルの最後のページでリソースをクリーンアップする手順を説明しています。クリーンアップすれば、Cloud Platform のサービスによる課金が継続することはありません。このチュートリアルのステップを最後まで行わない場合は、最後のページのクリーンアップ手順をご覧ください。

始める前に

  1. GCP Console を使用して、Google Cloud Platform プロジェクトを設定します。
    1. まず新しい GCP プロジェクトを作成し、次に App Engine アプリケーションを作成してそのプロジェクトの課金を有効にします。
      App Engine に移動

      プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択し、課金を有効にします。GCP プロジェクトを作成すると [ダッシュボード] が開きます。

    2. Cloud Datastore、Cloud Pub/Sub、Cloud Storage JSON、Stackdriver Logging、Google+ API(複数)を有効にする。

      Enable the APIs

      API(複数) を有効にすると、認証情報を得る必要はありません。

  2. Google Cloud SDK のダウンロード、インストール、初期化を行います。
    SDK をダウンロード
  3. Google Cloud Platform サービスで認証するには、ローカル認証情報が必要です。
    gcloud auth application-default login
  4. デフォルトのプロジェクトが正しく設定されているか確認します。
    gcloud config list
    ここで出力されたプロジェクト ID が、このチュートリアルで使用するプロジェクトと違っている場合は、次のコマンドを入力してプロジェクトを設定します。
    gcloud config set project [YOUR_PROJECT_ID]
    ここで、[YOUR_PROJECT_ID] はこのチュートリアルで使うために作成または選択したプロジェクトの ID です。
  5. サンプル リポジトリのクローンを作成します。

    go get -u -d github.com/GoogleCloudPlatform/golang-samples/getting-started/bookshelf/app

このチュートリアルは、読者が Go プログラミング言語に精通しており、すでに Go がインストールされていることを前提とします。

チュートリアルの構成

この Bookshelf チュートリアルは複数のパートで構成され、Cloud Platform のさまざまなサービスがサンプルアプリでどのように使われているかを各パートで具体的に説明しています。

このチュートリアルの構造化データに関するパートでは、サンプルアプリが書籍情報を SQL または NoSQL データベースに格納する仕組みを説明しています。アプリのウェブページが表示するフォームで、ユーザーは書籍のタイトル、著者名、説明、出版日を入力できます。これらの情報は入力した書籍ごとにデータベースに格納され、後でデータベースから取り出して表示または編集することができます。チュートリアルのこのステップでは、Cloud SQL、Cloud Datastore、MongoDB の 3 つからデータベースを選択できます。いずれかのデータベースでこのステップを完了し、次のステップに進んでください。

このチュートリアルの Cloud Storage に関するパートでは、サンプルアプリがバイナリデータを Cloud Storage に格納する仕組みを説明しています。このアプリのウェブページで、ユーザーはそれぞれの書籍の表紙画像を指定できます。指定された表紙画像は、Cloud Storage のバケットに格納されます。

このチュートリアルの承認に関するパートでは、アプリがユーザーにログインフローを提供する仕組みを説明しています。ユーザーがログインして書籍情報を入力すると、その情報はユーザー本人と関連付けられます。ログインしたユーザーには自分の書籍だけが表示されます。

このチュートリアルのロギングに関するパートでは、アプリが Google Cloud Platform Console に表示されるログを記録する仕組みを説明しています。このタイプのログは、アプリの開発中に診断情報を提供することができます。

このチュートリアルの Pub/Sub に関するパートでは、アプリが Cloud Pub/Sub を使用してタスクをバックグラウンド ワーカーに送信する仕組みを説明しています。ワーカーは Google Books API から情報を収集し、データベースの書籍情報を更新します。

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