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 主控台的 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:8080

    此時您會在頁面上看到來自範例應用程式的「Hello World」訊息。

  3. 在終端機視窗中,按下 Ctrl+C 來關閉網路伺服器。

在 App Engine 上部署並執行 Hello World

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 執行個體上運作的網路伺服器所提供。

恭喜! 您成功將第一個 .NET 應用程式部署到 App Engine 彈性環境了!

請參閱下列各節,以瞭解清除作業的相關資訊,並取得您後續可採取步驟的連結。

清除

如要避免支付費用,您可以刪除 GCP 專案,這樣系統就會停止對該專案使用的所有資源計費。

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

後續步驟

瞭解整個平台

現在您已瞭解開發及部署 App Engine 應用程式的相關程序,接下來建議您探索 GCP 的其餘部分。您已安裝的 Cloud SDK,可為您提供與 Cloud SQL、Cloud Storage、Cloud Firestore 等產品互動的工具。

如需瞭解如何建立使用整個平台的應用程式,而非僅使用 App Engine 的逐步操作說明,請參考建立 Bookshelf 應用程式的快速入門導覽課程。

瞭解 App Engine 彈性環境

以下是一些可協助您瞭解 App Engine 的主題。

Hello World 程式碼審查

Hello World 是再簡單不過的 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 彈性環境