App Engine 应用是使用 app.yaml
文件进行配置的,该文件包含 CPU、内存、网络和磁盘资源设置、扩缩设置以及环境变量等其他常规设置。
您可以选择任何新的 Java 11 及更高版本,也可以使用旧版 Eclipse Jetty 9.3 或 Java 8。对于 Eclipse Jetty 9.3 和 Java 8,您可以使用 Maven 或 Gradle。
app.yaml
文件简介
您可以在 app.yaml
文件中指定 Java 应用的运行时配置,包括版本和网址。该文件充当特定服务版本的部署描述符。
您必须先为应用的 default
服务创建 app.yaml
文件,然后才能为其他服务创建和部署 app.yaml
文件。
以下 app.yaml
演示了如何针对 Java 8、11、17 及更高版本配置应用。请注意,您必须更新 app.yaml
文件才能使用新版本。如需详细了解如何使用新版本,请参阅 Java 运行时。
版本 17 及更高版本
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
版本 11
runtime: java
env: flex
runtime_config:
operating_system: "ubuntu18"
runtime_version: "11"
handlers:
- url: /.*
script: this field is required, but ignored
manual_scaling:
instances: 1
版本 8
您可能只需在相应的 app.yaml
文件中定义几个元素,具体取决于应用服务的复杂程度。以下示例演示了柔性环境中的简单 Java 应用可能需要定义的元素:
您可以为 app.yaml
文件指定一个独特的名称,但这样一来就必须在使用部署命令时指定该文件名。例如,如果您将 app.yaml
文件命名为 service-name-app.yaml
或 app.flexible.yaml
,则必须使用下列任一命令部署您的应用:
gcloud app deploy service-name-app.yaml
gcloud app deploy app.flexible.yaml
app.yaml
文件的结构,请参阅设计 Web 服务的结构。
所有配置元素
如需查看此配置文件中所有受支持的元素的完整列表,请参阅 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"