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. Google Cloud Platform プロジェクトを設定するには、GCP Console を使用します。
    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 Datastore、PostgreSQL の 3 つからデータベースを選択できます。1 つのデータベースを選択し、次のステップに進んでください。

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

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

このチュートリアルのロギングのパートでは、サンプル アプリケーションが Google Cloud Platform Console に表示されるログを書き込む仕組みを解説します。このタイプのログは、アプリの開発中に診断情報を提供できます。

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

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