App Engine フレキシブル環境で .NET アプリを作成する

リージョン ID

REGION_ID は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。

詳しくは、リージョン ID をご覧ください。

このクイックスタートでは、ショート メッセージを表示するアプリを作成してデプロイする方法を説明します。サンプル アプリケーションでは、利用可能な最新の LTS .NET バージョンを使用しています。

.NET バージョン 6 以降では、app.yaml ファイルに runtime_version 設定を含めることで、ランタイム バージョンを指定できます。runtime_version の設定が指定されていない場合は、デフォルトで利用可能な最新の LTS .NET バージョンが使用されます。さまざまな構成オプションについては、.NET ランタイムをご覧ください。

.NET バージョン 3.1 以前のコードサンプルは、GitHub にあります。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Build API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Build API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    gcloud init

追加の前提条件

  1. プロジェクトで App Engine アプリケーションを初期化し、そのリージョンを選択します。

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    表示された指示に従って、App Engine アプリケーションを配置するリージョンを選択します。

  2. 次の前提条件をインストールします。

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

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

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

App Engine のロケーション

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

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

設定したアプリのリージョンは変更できません。

すでに App Engine アプリケーションを作成している場合は、次のいずれかの方法でそのリージョンを表示できます。

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

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

App Engine 用のシンプルな Hello World アプリが用意されており、Google Cloud へのアプリのデプロイをすぐに試すことができます。この 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 を実行する

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

    dotnet restore
    dotnet run
    
  2. ウェブブラウザで http://localhost:5000/ にアクセスします。サンプルアプリから「Hello World」というメッセージがページに表示されます。ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。

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

  1. コマンドラインから gcloud app deploy を実行します。
  2. ブラウザを起動して https://PROJECT_ID.REGION_ID.r.appspot.comgcloud app browse でアプリを表示します。

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

これで完了です。App Engine フレキシブル環境に最初の App Engine アプリケーションをデプロイしました。

アプリケーションのデプロイでエラーが発生した場合は、トラブルシューティングのヒントをご覧ください。

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

クリーンアップ

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

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

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

次のステップ

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

App Engine アプリの開発とデプロイについて概要を理解した後は、Google Cloud の残りの部分についても確認します。すでに Google Cloud CLI がインストールされているため、Cloud SQL、Cloud Storage、Firestore などのプロダクトを操作するツールを使用できます。

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

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

Hello World コードレビュー

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

Program.cs

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

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => builder.Configuration["My:Greeting"]);

app.Run();

app.yaml

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

  • env: flex の設定。アプリで App Engine フレキシブル環境が使用されることが示されます。
  • アプリで使用するランタイムを指定します。

    runtime: aspnetcore
    env: flex
    
    runtime_config:
      operating_system: ubuntu22
    
    # 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/dotnet/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!