Java 用 Bookshelf アプリ

Bookshelf アプリは、次のような Google Cloud Platform のさまざまなサービスの使い方を説明する Java で記述されたサンプル ウェブアプリです。

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

このチュートリアルでは、Bookshelf アプリについて詳しく説明します。また、Cloud Platform が提供する技術やサービスを使用してアプリの機能を実装する方法を説明します。

Bookshelf アプリは、ウェブ アプリケーション フレームワークである javax.servlet を基盤にして、JavaServer Pages を使用して実装されています。このサンプルの Bookshelf アプリでサーブレットを使用しているのは、サーブレットが単純で使いやすいからです。しかし、ここで説明する考え方やテクノロジーは、使用するフレームワークとは関係なくどのようなケースにも応用できます。たとえば、Spring Boot などの別のウェブ アプリケーション フレームワークでこのアプリを実装することもできます(サンプル)。

各種コントロールや書籍の表紙が表示されている Bookshelf アプリのスクリーン ショット

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

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

目標

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

費用

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

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 を有効にします。

      APIを有効にする

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

    git clone https://github.com/GoogleCloudPlatform/getting-started-java.git

    あるいは、zip 形式のサンプルをダウンロードして、ファイルを抽出することもできます。

このチュートリアルは、読者が Java に精通し、Java 8 および Maven がインストール済みであることを前提としています。

チュートリアルの構成

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

このチュートリアルのフォームに関するパートでは、ウェブフォームを使用して書籍情報を受信および格納する方法を説明しています。

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

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

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

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

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