App Engine フレキシブル環境で .NET を使用するためのクイックスタート

このクイックスタートでは、短いメッセージを表示する小さな App Engine アプリを作成する方法について説明します。

始める前に

このクイックスタートを実行してデプロイする前に、Cloud SDK をインストールして、App Engine 用に GCP プロジェクトを設定します。

  1. Cloud SDK をダウンロードしてインストールします。

    SDK をダウンロード

    : Cloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新します。

    gcloud components update
    
  2. 新しいプロジェクトを作成します。

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    プロジェクトが作成されたことを確認します。

    gcloud projects describe [YOUR_PROJECT_ID]
    

    次のようなプロジェクトの詳細が表示されます。

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. プロジェクトで App Engine アプリを初期化し、そのリージョンを選択します。

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。

  4. プロジェクトで課金が有効になっていることを確認します。アプリケーションを App Engine にデプロイするには、課金アカウントをプロジェクトにリンクする必要があります。

    課金を有効にする

    フレキシブル環境でデプロイすると、有効である間は費用が発生します。 完了するごとにプロジェクトをクリーンアップして、継続的な費用が発生しないようにしてください。

  5. 前提条件として要求されるものをインストールします。

    • .NET Core SDK、LTS バージョンをインストールします。

    • Visual Studio を使用している場合は、バージョン 2015 以降を使用する必要があります。.NET Core 1.0、1.1、2.0、2.1 用に作成された ASP.NET Core アプリのイメージを使用できます。

    • Visual Studio から直接 App Engine にデプロイするには、Cloud Tools for Visual Studio をインストールします。

App Engine のロケーション

App Engine はリージョナルです。つまり、アプリを実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google によって管理されます。

レイテンシ、可用性、耐久性の要件を満たすことが、アプリを実行するリージョンを選択する際の主な要素になります。一般的には、アプリのユーザーに最も近いリージョンを選択しますが、アプリで使用されている他の GCP プロダクトやサービスのロケーションを考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響します。

App Engine は次のリージョンで利用できます。

  • northamerica-northeast1(モントリオール)
  • us-central(アイオワ)
  • us-west2(ロサンゼルス)
  • us-east1(サウスカロライナ)
  • us-east4(北バージニア)
  • southamerica-east1(サンパウロ)
  • europe-west(ベルギー)
  • europe-west2(ロンドン)
  • europe-west3(フランクフルト)
  • europe-west6(チューリッヒ)
  • asia-northeast1(東京)
  • asia-northeast2(大阪)
  • asia-east2(香港)
  • asia-south1(ムンバイ)
  • australia-southeast1(シドニー)

アプリのリージョンを設定した後で変更することはできません。

App Engine アプリケーションがすでに作成されている場合は、gcloud app describe コマンドを実行するか、GCP Console の App Engine ダッシュボードを開くと、そのアプリケーションに設定されているリージョンを確認できます。App Engine アプリケーションのリージョンは http://[YOUR_PROJECT_ID].appspot.com に表示されます。

このクイックスタートは、C# でのウェブ アプリケーションの作成に慣れていることを前提としています。

Hello World アプリをダウンロードする

.NET 用のシンプルな Hello World アプリが用意されており、これを使用して Google Cloud Platform へのアプリのデプロイをすぐに試すことができます。この Hello World アプリは、空の ASP.NET Core アプリケーションの作成時に Visual Studio によって作成されるアプリケーションと似ています。サンプルアプリでは app.yaml ファイルを追加します。app.yaml ファイルは、ランタイムと他の App Engine の設定を指定する App Engine 構成ファイルです。

  1. Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
    

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

  2. サンプルコードが含まれているディレクトリに移動します。

    cd dotnet-docs-samples/appengine/flexible/HelloWorld
    

ローカルマシンで Hello World を実行する

Visual Studio

ローカルのパソコン上で Hello World アプリを実行するには:

  1. Visual Studio で dotnet-docs-samples\appengine\flexible\HelloWorld\HelloWorld.sln を開きます。
  2. F5 キーを押します。

    サンプルアプリから「Hello World」というメッセージがページに表示されます。

コマンドライン

ローカルのパソコン上で Hello World アプリを実行するには:

  1. dotnet-docs-samples\appengine\flexible\HelloWorld ディレクトリから次のコマンドを実行します。
    dotnet restore
    dotnet run
  2. ウェブブラウザで http://localhost:5000/ にアクセスします。

    サンプルアプリから「Hello World」というメッセージがページに表示されます。

  3. ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。

Hello World を App Engine にデプロイして実行する

Visual Studio

Hello World アプリをデプロイするには:

  1. Visual Studio で dotnet-docs-samples\appengine\flexible\HelloWorld\HelloWorld.sln を開きます。
  2. ソリューション エクスプローラーで、[HelloWorld] を右クリックし、[Publish to Google Cloud...] を選択します。
  3. [App Engine Flex] をクリックします。
  4. [Publish] をクリックします。
  5. デプロイされたアプリを表示するには、ブラウザで次のアドレスにアクセスします。

    https://YOUR_PROJECT_ID.appspot.com

コマンドライン

  1. dotnet-docs-samples\appengine\flexible\HelloWorld ディレクトリから次のコマンドを実行します。

    dotnet restore
    dotnet publish -c Release
    gcloud app deploy .\bin\Release\netcoreapp2.1\publish\app.yaml
  2. ブラウザを起動し、http://YOUR_PROJECT_ID.appspot.com でアプリを表示します。

    gcloud app browse

今回、Hello World メッセージが表示されるページは、App Engine インスタンスで実行されているウェブサーバーから配信されます。

これで完了です。 App Engine フレキシブル環境に最初の .NET アプリがデプロイできました。

クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご覧ください。

クリーンアップ

課金されないようにするには、GCP プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ

プラットフォーム全体について学習する

App Engine アプリの開発とデプロイについて概要を把握したので、GCP のほかの部分についても確認します。すでに Cloud SDK がインストールされているため、Cloud SQL、Cloud Storage、Cloud Firestore などと連携するツールの利用が可能になっています。

App Engine だけでなくプラットフォーム全体を使用するアプリの作成方法を学ぶチュートリアルについては、Bookshelf アプリの作成に関するクイックスタートをご覧ください。

App Engine フレキシブル環境について学習する

App Engine についてさらに理解を深めるためのトピックをご紹介します。

Hello World のコードレビュー

Hello World は、サービスが 1 つだけ含まれ、バージョンも 1 つだけで、すべてのコードがアプリのルート ディレクトリにあるという、最もシンプルな App Engine アプリです。このセクションでは、このアプリの各ファイルを詳しく説明します。

Startup.cs

Hello World アプリはシンプルな ASP.NET アプリです。

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.Run(async (context) =>
            {
                string greeting = Configuration["My:Greeting"];
                await context.Response.WriteAsync(greeting);
            });
        }
    }

app.yaml

app.yaml ファイルには、アプリのデプロイ構成が記述されています。

runtime: aspnetcore
env: flex

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

env_variables:
  # The __ in My__Greeting will be translated to a : by ASP.NET.
  My__Greeting: Hello AppEngine!

この例では、このアプリによって使用されるランタイムが app.yaml で指定され、また、env: flex を設定することで、このアプリがフレキシブル環境を使用することが指定されています。

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

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

.NET の App Engine フレキシブル環境に関するドキュメント