在服务之间通信

区域 ID

REGION_ID 是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r 包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。

详细了解区域 ID

您可以使用各种方法在 App Engine 服务之间或与其他服务(包括 Google Cloud 服务和外部应用)进行通信。

如需与您的 App Engine 服务进行通信,最简单的方法是发送定向 HTTP 请求,在网址中包含资源的名称或 ID。例如,除了相应的 Google Cloud 项目 ID 外,您还可以包含要定位的服务或版本的 ID:


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.

详细了解 App Engine 中的请求:

您的 App Engine 服务还可以使用 Pub/Sub 通信,以便在进程(包括 App Engine)之间提供可靠的异步多对多消息传递。这些进程可以是您的应用、服务乃至外部应用的单个实例。

如需在数据库与 App Engine 应用或某个其他外部应用之间共享数据,请参阅了解数据和文件存储

私密通信

同一项目中的服务之间的通信

您可以允许 App Engine 柔性环境服务与同一项目中的其他 App Engine 服务进行通信,而无需将目标服务公开给公共互联网。

  1. 将目标服务的入站流量设置配置为仅允许“内部”流量。

  2. 确保源应用版本未部署到位于其他项目中的共享 VPC 网络。

不同项目中的服务之间的通信

如果项目中运行的应用属于共享 VPC 网络(配置为调用在共享 VPC 网络的宿主项目中运行的应用),则您可以在 Google Cloud 项目之间建立专用访问通道。

如需使用此模式,请按照前面在同一项目中的服务之间进行通信的步骤执行操作。在柔性环境中,将每个客户端版本部署到同一共享 VPC 网络中。

在 App Engine 中,通过内部访问权限在项目之间进行通信的其他方法不可行。

预留的网址路径

无法使用以下网址路径:

  • /eventlog 结尾的路径
  • /_ah/ 开头的路径
  • 某些以 z 结尾的路径