Python Bookshelf アプリ

Bookshelf アプリは、Google Cloud Platform(GCP)のさまざまなプロダクトの使い方を説明する Python のサンプル ウェブアプリです。

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

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

Bookshelf サンプルアプリは Flask ウェブ アプリケーション フレームワークを使用していますが、どのフレームワークを使用するかにかかわらず、検討したコンセプトと技術は適用可能です。このアプリは、Django など、お好みのウェブアプリ フレームワークで実装できます。このチュートリアルでは、大規模な Flask アプリ向けのベスト プラクティスや一般的なパターンに従ったコードを使用します。特に、このアプリは BlueprintApplication Factories を使用しています。このようなパターンに慣れていない場合は、Flask のドキュメントを読むことをおすすめします。

コントロールと本の表紙が表示されている 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 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-python.git

    または、Zip ファイルでサンプルをダウンロードし、展開します。

このチュートリアルは、読者が Python プログラミングに精通していて、Python 開発環境が準備されていることを前提にしています。Python をまだインストールしていない場合は、Python 開発環境のセットアップをご覧ください。Python をインストール済みであっても、Python ツールが最新であるか確認するためにもセットアップ手順を見直すことをおすすめします。

チュートリアルの構成

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

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

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

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

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

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

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

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

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