区域 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
App Engine 应用由包含一项或多项服务的单个应用资源组成。每项服务都可以配置为使用不同的运行时和性能设置。在每项服务中,您都可以部署该服务的“版本”,而每个版本可以在一个或多个“实例”中运行,具体取决于您为它配置处理多少流量。
应用的组件
当您创建应用资源时,系统会在您的 Google Cloud 项目下创建 App Engine 应用。App Engine 应用是一个顶层容器,用于容纳构成应用的服务、版本和实例资源。当您创建 App Engine 应用时,所有的资源都将在您选择的区域中创建,包括应用代码以及一系列设置、凭据和应用的元数据。
每个 App Engine 应用至少包含一项服务,即 default
服务,这项服务可以保存许多版本,具体取决于应用的结算状态。如需了解详情,请参阅下面的限制。
下图说明了运行多项服务的 App Engine 应用的层次结构。在此图中,应用具有两项包含多个版本的服务,并且其中两个版本正在多个实例上活跃运行:
其他 Google Cloud 服务(例如 Datastore)将在您的 App Engine 应用中共享。如需了解详情,请参阅设计 Web 服务的结构。
服务
使用 App Engine 中的“服务”将大型应用分解为可以安全共享 App Engine 功能并相互通信的逻辑组件。通常情况下,App Engine 服务的行为类似于微服务。因此,您可以在单项服务中运行整个应用,也可以设计并部署多项服务以作为一组微服务运行。
举例来说,用于处理客户请求的应用可以包含若干项服务,各自处理不同的任务,例如:
- 来自移动设备的 API 请求
- 内部的管理类请求
- 结算流水线和数据分析等后端处理
App Engine 中的每项服务都包含来自应用的源代码以及相应的 App Engine 配置文件。部署到某服务的一组文件代表该服务的一个“版本”,每向该服务部署一次,就会在其中创建一个新的版本。
版本
通过在每项服务中包含应用的多个版本,您可以在该应用的不同版本之间快速切换,以执行回滚、测试或其他临时活动。您可以通过迁移或拆分流量,将流量路由到应用的一个或多个特定版本。
实例
您可以在一个或多个“实例”上运行服务中的各个版本。默认情况下,App Engine 会扩缩您的应用资源规模,使其与负载匹配。您的应用可以增加运行实例数来保障性能,也能够缩减实例数来最大限度地减少空闲实例并降低费用。如需详细了解实例,请参阅实例的管理方式。
应用请求
应用的每项服务以及这些服务中的每个版本都必须具有唯一的名称。然后您可以用这些唯一名称来确定网址,并将流量分配到对应的特定资源,例如:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
请注意,VERSION-dot-SERVICE-dot-PROJECT_ID
的总长度(其中 VERSION
是版本名称,SERVICE
是服务名称,PROJECT_ID
是项目 ID)不得超过 63 个字符,且首尾不能使用连字符。如果组合长度超过 63 个字符,您可能会看到错误 DNS address could not be
found.
传入的用户请求将被路由到配置为处理流量的服务或版本。您还可以选择将符合某些条件的请求路由到指定的服务和版本。如需了解详情,请参阅在服务之间通信。
记录应用请求日志
当应用处理请求时,它还可以将自己的日志记录消息写入 stdout
和 stderr
。如需详细了解应用的日志,请参阅写入应用日志。
限制
您可以部署的服务和版本的最大数量取决于应用的价格方案:限制 | 免费应用 | 付费应用 |
---|---|---|
每个应用的服务数上限 | 5 | 210 |
每个应用的版本数上限 | 15 | 210 |
每项采用基本扩缩或手动扩缩的服务的实例数量也有限制:
每个手动/基本扩缩版本的实例数上限 | ||
---|---|---|
免费应用 | 付费应用(美国) | 付费应用(欧盟) |
20 | 25(对于 us-central ,则为 200) |
25 |
应用网址中的字符数也存在限制。
说明 | 限制 |
---|---|
VERSION-dot-SERVICE-dot-PROJECT_ID 网址的项目网址中的字符数上限 |
63 |