撰寫您的網路服務

本指南說明如何編寫 Java 網路服務,以便在 App Engine 標準環境中執行。如要進一步瞭解 Java 執行階段及其運作方式,請參閱「Java 執行階段環境」。

事前準備

如果尚未完成以下步驟,請先進行這些準備工作:

  1. 針對您要使用的 App Engine 執行階段版本,安裝最新版本的 Java Development Kit (JDK)
  2. 下載安裝 Apache Maven,以建構、執行及部署範例應用程式。

重點

  • App Engine 會上傳可執行的 JAR 應用程式,藉此啟動應用程式。
  • 應用程式必須有主要類別,啟動網路伺服器,以便在 PORT 環境變數指定的通訊埠 (通常為 8080) 上回應 HTTP 要求。
  • 您必須使用 app.yaml 檔案,才能將服務部署至 App Engine。
  • pom.xml 檔案中列出依附元件即可予以使用。詳情請參閱「使用 Java 程式庫」。

建立主類別

HTTP 伺服器是網路服務的核心。本指南中的程式碼範例使用 Spring Boot 架構處理 HTTP 要求,但您可以自由使用您選擇的網路架構。

  1. 為 Java 產生 Spring Boot 專案,該專案會使用 Maven 建構系統,並包含 Spring Web 依附元件。如要開始使用,請點選下列連結:

    前往 Spring Initializr

  2. 在 Spring Initializer 中,按一下「Generate」按鈕,即可產生及下載專案。

  3. 在下載的專案中,編輯 springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java 檔案,以便新增一些 Java 匯入項目和 REST 的 hello 處理常式:

    package com.example.appengine.springboot;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    @SpringBootApplication
    @RestController
    public class DemoApplication {
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
    @GetMapping("/")
    public String hello() {
    return "Hello world!";
    }
    }
    

    經修改的類別是控制器,可啟動 Spring Boot 內嵌的 Tomcat 伺服器,並以「Hello world!」文字回應根路徑 ('/') 的 GET 要求。

在本機執行伺服器

如何在本機執行伺服器:

  1. 使用 Spring Boot Maven 外掛程式啟動本機網路伺服器:

    mvn spring-boot:run
    
  2. 在網路瀏覽器中輸入以下網址:
    http://localhost:8080

此時頁面會顯示來自範例應用程式的「Hello World」訊息。請在終端機視窗中,按下 Ctrl+C 鍵來關閉網路伺服器。

建立 app.yaml 檔案

如要在 App Engine 執行階段環境中指定應用程式設定,請按照下列步驟操作:

  1. 在以下目錄中建立名為 app.yaml 的檔案:
    springboot/src/main/appengine/

  2. 將下列內容新增至檔案:

    Java 21

    runtime: java21
    

    app.yaml 檔案也可以指定網路設定或資源調度設定等等。詳情請參閱 app.yaml 參考資料

如果您使用了上方的 Spring Initializr 連結,現在應該會有以下檔案結構:

  • springboot/
    • pom.xml
    • src/main/
      • appengine/
        • app.yaml
      • java/com/example/appengine/springboot/
        • DemoApplication.java

您也可以在專案的 pom.xml 中新增 Maven 外掛程式,以便部署應用程式:

            
                com.google.cloud.tools
                appengine-maven-plugin
                2.8.1
                
                    YOUR_PROJECT_NAME
                    YOUR_VERSION
                    false
                
            

後續步驟

您現已建立監聽正確通訊埠的簡易 Java 網路伺服器,並在 app.yaml 檔案中指定執行階段,因此可以開始在 App Engine 中部署服務