整理 yaml 配置文件

请阅读以下文档,了解如何设计 App Engine 应用的服务和相关资源的结构。

目录结构

App Engine 服务的每个版本均在 app.yaml 配置文件中定义。要部署简单应用,您至少需要定义 app.yaml 文件。app.yaml 文件充当部署描述符,并为特定版本的服务定义扩缩类型以及 CPU、磁盘和内存资源。如果要部署一项服务的多个版本,则可以在同一目录中创建多个 YAML 文件,以分别表示每个版本的配置。

Eclipse Jetty 9Java 8 运行时使用 YAML 格式的配置文件。

文件结构取决于您使用的 Java 运行时。您可能需要一个 WAR 文件或 JAR 文件;您应用中的每项服务分别对应于一个 WAR 文件或 JAR 文件。如需了解详情,请参阅相应的 Java 运行时开发者指南。

关于实例正常运行时间的设计注意事项

硬件或软件故障可能会毫无征兆地出现,导致实例提前终止或频繁重启,这些故障可能需要相当长的时间才能解决。您的应用应该能够处理此类故障。

下面提供了一些有效的策略,可帮助您避免因实例重启而造成的停机时间:

  • 减少实例重启或新实例启动所需的时间。
  • 对于长时间运行的计算,应定期创建检查点,以便可以从该状态恢复。
  • 您的应用应该是“无状态”的,这样就不会在实例上存储任何内容。
  • 使用队列来执行异步任务。
  • 如果将实例配置为手动扩缩,请执行以下操作:
    • 在多个实例间使用负载平衡。
    • 除了处理正常流量所需的实例以外,再多配置一些实例。
    • 编写回退逻辑,以便在手动扩缩实例不可用时使用缓存结果。

如需详细了解实例,请参阅实例的管理方式

default 服务

每个 App Engine 应用都包含一项 default 服务。您必须先将应用的初始版本部署到 default 服务,然后才能为应用创建和部署其他服务。

您可以选择性地在 app.yaml 中使用设置 service: default 指定默认服务。

使用您的 GCP 项目发送到您的应用的请求将发送到 default 服务,例如 https://[PROJECT_ID].appspot.com。如需详细了解如何定位到其他服务,请参阅在服务之间通信

可选配置文件

以下配置文件可以控制适用于单个应用中的所有服务的可选功能。如需详细了解每个可选功能,请参阅以下主题:

数据和文件存储注意事项

借助 App Engine,您可以轻松访问 Cloud DatastoreCloud SQLCloud Storage 等其他 GCP 服务。

您也可以选择使用外部或第三方数据库,但该数据库必须受您的语言支持,并且可通过您的 App Engine 实例进行访问。

如需详细了解如何在 GCP 中或在外部存储文件,请参阅了解数据和文件存储

您还可以选择静态内容的传送方式。您可以直接从 App Engine 中的应用传送应用的静态内容、在 GCP 产品(如 Cloud Storage)上托管您的静态内容或者使用第三方内容分发网络 (CDN)。如需详细了解如何传送静态内容,请参阅传送静态文件

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Java 版 App Engine 柔性环境文档