使用 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 文件的结构,请参阅设计 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"