.NET Bookshelf アプリ

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

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

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

コントロールと本の表紙が表示されている Bookshelf アプリのスクリーンショット

Bookshelf App は、書籍タイトルのコレクションを格納します。アプリに対するアクセス権があれば、どのユーザーでもリストを変更できます。サンプルアプリでは、次の操作が可能です。

  • 本のリスト表示する
  • リストに本を追加する
  • リストから本を削除する
  • 書籍の詳細を編集する
  • 本の表紙画像をアップロードする

目標

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

料金

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

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

始める前に

  1. Google Cloud Platform プロジェクトを設定するには、GCP Console を使用します。
    1. GCP プロジェクトを作成した後、App Engine アプリを作成し、そのプロジェクトでの課金を有効にします。
      App Engine に移動

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

    2. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
    3. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}GCP Console プロジェクトをセットアップします。

      プロジェクトをセットアップする

      クリックして、以下を行います。

      • プロジェクトを作成または選択します。
      • プロジェクトに{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}必要な{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %} を有効にします。
      • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
      • サービス アカウントを作成します。
      • JSON として秘密鍵をダウンロードします。
      • {% dynamic endif %}

      これらのリソースは、GCP Console でいつでも表示および管理できます。

      {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}{% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}必要な{% dynamic endif %}{% dynamic if "," in setvar.api_list %} API{% dynamic elif "API" in setvar.api_names %}{% dynamic else %} API{% dynamic endif %} を有効にします。 {% dynamic endif %}

      {% dynamic if "," in setvar.api_list %}API{% dynamic else %}API{% dynamic endif %}を有効にする

      {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
    4. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
  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-dotnet.git

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

このチュートリアルでは、ユーザーがすでに Visual Studio 2017 以降をインストールしており、.NET FrameworkC# 言語に精通していることを前提とします。

Compute Engine インスタンスの作成

Google Cloud Platform Marketplace を使用して、Windows Server 2016 R2、Microsoft IIS、ASP.NET、SQL Express がプリインストールされている新しい Compute Engine インスタンスを作成します。

  1. GCP Console で、GCP Marketplace の ASP.NET Framework のページに移動します。

  2. デプロイの名前を「bookshelf-tutorial」に設定します。

  3. Compute Engine のゾーンを選択します。

  4. インスタンスをデプロイするには、[デプロイ] をクリックします。

Compute Engine インスタンスにユーザーを追加する

デプロイ プロセスが完了したら、デフォルトの Windows ユーザーを新しいインスタンスに追加します。

  1. GCP Console の [VM インスタンス] ページに移動します。

    VM インスタンス

  2. [bookshelf-tutorial] をクリックします。

  3. [インスタンス] ページで、[Windows パスワードを設定] をクリックします。

  4. [新しい Windows パスワードの設定] ダイアログで、ユーザー名を追加して [設定] をクリックし、インスタンス上にユーザー アカウントを作成します。

  5. 表示されたパスワードを書き留めて、ダイアログを閉じます。

チュートリアルの構造

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

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

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

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

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

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