使用 app.yaml 設定應用程式

App Engine 應用程式是使用 app.yaml 檔案進行設定,其中包含 CPU、記憶體、網路和磁碟資源、資源調度,以及包含環境變數在內的其他一般設定。

app.yaml 檔案簡介

您可以在 app.yaml 檔案中指定 Java 應用程式的執行階段設定,包括版本和網址。這個檔案可做為特定服務版本的部署描述元。

您必須先為應用程式的 default 服務建立 app.yaml 檔案,才能為其他服務建立及部署 app.yaml 檔案。

以下 app.yaml 範例說明如何為最新 Java 版本設定應用程式。如要進一步瞭解如何使用支援的 Java 執行階段,請參閱 Java 執行階段

  runtime: java
  env: flex
  runtime_config:
  operating_system: "ubuntu22"
  runtime_version: "21"
  handlers:
  - url: /.*
  script: this field is required, but ignored

  manual_scaling:
  instances: 1

視應用程式服務的複雜程度而定,您或許只需要在對應的 app.yaml 檔案中定義一些元素。下列範例示範簡易的 Java 應用程式在彈性環境中可能需具備的條件:

您可以為 app.yaml 檔案指定不重複的名稱,但稍後必須一併使用部署指令指定檔案名稱。舉例來說,如果您將 app.yaml 檔案命名為 service-name-app.yamlapp.flexible.yaml,就必須使用下列其中一種方式來部署應用程式:

gcloud app deploy service-name-app.yaml
gcloud app deploy app.flexible.yaml
如要進一步瞭解如何在應用程式中建構多個服務和 app.yaml 檔案,請參閱「建構網路服務」一文。

所有設定元素

如需這個設定檔中所有支援元素的完整清單,請參閱 app.yaml 參考資料

啟用 Java 虛擬機器指標收集功能

您可以為 Java 設定 App Engine 彈性環境,收集 Java 虛擬機器 (JVM) 處理程序的常見指標。系統會使用 Cloud Monitoring 使用的相同 JVM 監控外掛程式收集指標。如要查看 App Engine 的指標完整清單,請參閱 Google Cloud 指標指南

如要為應用程式收集這些 JVM 指標,請按照下列步驟操作:

  • appengine.googleapis.com/flex/instance/jvm/gc/count
  • appengine.googleapis.com/flex/instance/jvm/gc/time

您必須在 app.yaml 的環境變數中設定下列 JMX 系統屬性,然後部署應用程式。

JAVA_USER_OPTS: "-Djava.rmi.server.hostname=172.17.0.1 -Dcom.sun.management.jmxremote.port=10403 -
Dcom.sun.management.jmxremote.rmi.port=10403 -Dcom.sun.management.jmxremote.local.only=false -
Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"