Ruby Bookshelf アプリ

Bookshelf アプリは、下記のものを含む Google Cloud Platform(GCP)のさまざまなプロダクトの使い方を説明する Ruby で記述されたサンプル ウェブアプリです。

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

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

Bookshelf サンプルアプリはウェブ アプリケーション フレームワークである Ruby on Rails を土台にしています。ここで説明するコンセプトやテクノロジーは、使用するフレームワークに関係なくどのようなケースにも応用できます。たとえば、Sinatra などの別のラックベースの Ruby ウェブ フレームワークでこのアプリを実装することもできます。

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

Bookshelf サンプルアプリは、書籍タイトルのコレクションを保存します。このアプリへのアクセス権があれば誰でもリストに書籍を追加できます。このサンプルアプリに備わっている機能は次のとおりです。

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

目標

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

料金

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

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

始める前に

  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. Cloud SDK をダウンロード、インストール、初期化します。
    Cloud SDK をダウンロード
  3. GCP サービスで認証するためのローカル認証情報を取得します。
    gcloud auth application-default login
  4. デフォルトのプロジェクトが正しく設定されていることを確認します。
    gcloud config list
    出力に表示されるプロジェクト ID がこのチュートリアルで使用するプロジェクトでない場合は、プロジェクトを設定します。
    gcloud config set project [YOUR_PROJECT_ID]
    ここで、[YOUR_PROJECT_ID] はこのチュートリアルで使うために作成または選択したプロジェクトの ID です。
  5. サンプル リポジトリのクローンを作成します。

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

    または、zip 形式のサンプルをダウンロードして、ファイルを抽出します。

このチュートリアルは読者が Ruby on Rails に精通し、Ruby 2.0.0 以降をインストール済みであることを前提としています。gem コマンドを実行するには、Ruby に含まれている RubyGems が必要になります。また Bundler のインストールも必要になります。Ruby の開発と同様、このチュートリアルに Ruby gems をインストールするには、C コードをコンパイルした後に、システム ライブラリにリンクしてください。ご使用のオペレーティング システムに適した開発環境に構成されていることをご確認ください。システム ライブラリに C コンパイラ、リンカー、ヘッダー ファイルが必要となります。

チュートリアルの構成

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

このチュートリアルの構造化データに関するパートでは、サンプルアプリが書籍情報を SQL または NoSQL データベースに格納する仕組みを説明しています。

ユーザーは、このアプリのウェブページに表示されるフォームに本のタイトル、著者名、説明、出版日を入力できます。これらの情報は入力した書籍ごとにデータベースに格納され、後でデータベースから取り出して表示または編集することができます。チュートリアルのこの段階では、Cloud SQL、Cloud Detastore、PostgreSQL の 3 つからデータベースを選択できます。1 つのデータベースを選択し、次のステップに進んでください。

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

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

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

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

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