撰寫您的網路服務

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

事前準備

如果尚未完成下列步驟,請先執行:

  1. 安裝最新版本的 Java Development Kit (JDK),適用於您打算使用的 App Engine 執行階段版本。
  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 外掛程式,以便部署應用程式:

            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.8.1</version>
                <configuration>
                    <projectId>YOUR_PROJECT_NAME</projectId>
                    <version>YOUR_VERSION</version>
                    <promote>false</promote>
                </configuration>
            </plugin>

後續步驟

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