使用 app.yaml 配置应用

App Engine 中的 Java 应用是使用 app.yaml 文件进行配置的,该文件包含 CPU、内存、网络和磁盘资源设置、扩缩设置以及环境变量等其他常规设置。

您可以选择 Eclipse Jetty 9.3 运行时Java 8 运行时。使用 MavenGradle 可让该操作更加轻松。

app.yaml 文件简介

您可以在 app.yaml 文件中指定 Java 应用的运行时配置,包括版本和网址。该文件充当特定服务版本的部署描述符。您必须先为应用的 default 服务创建 app.yaml 文件,然后才能为其他服务创建和部署 app.yaml 文件。

runtime: java
env: flex

handlers:
- url: /.*
  script: this field is required, but ignored
如需详细了解如何在应用中设计多个服务和 app.yaml 文件的结构,请参阅设计 Web 服务的结构。您可能只需在相应的 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 参考文档

启用 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"