入站流量设置

区域 ID

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

详细了解区域 ID

本部分介绍如何使用入站流量设置来限制对 App Engine 应用的网络访问。在网络级层,默认情况下,互联网上的任何资源都能够访问 App Engine 应用的 appspot 网址或者在 App Engine 中设置的自定义网域。例如,appspot.com 网址可以采用以下格式:SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com

您可以通过为入站流量指定不同的设置来更改此默认设置。所有入站流量路径(包括默认 appspot.com 网址)都受入站流量设置的约束。入站流量是在服务级层设置的。

可用的入站流量设置

您可以使用以下设置:

设置 说明
内部 限制性最高。允许来自附加到项目的 VPC 网络的资源的请求,例如:
  • 同一项目中的虚拟机,包括 Compute Engine 虚拟机。
  • 共享 VPC(在共享 VPC 宿主项目中部署 App Engine 应用时)。请参阅访问内部服务
来自这些来源的请求会一直在 Google 网络中,即使它们通过 appspot.com 网址访问您的服务也是如此。来自其他来源(包括互联网)的请求无法通过 appspot.com 网址或自定义网域访问您的服务。不支持多租户,即同一项目中的多个信任网域。
内部和 Cloud Load Balancing 允许来自以下资源的请求:
  • 限制性较高的内部设置允许的资源
  • 外部应用负载均衡器
使用内部和 Cloud Load Balancing 设置可以接受来自外部应用负载均衡器的请求,但不接受直接来自互联网的请求。对 appspot.com 网址的请求会绕过外部应用负载均衡器,因此此设置会阻止外部请求到达 appspot.com 网址。
全部 限制性最低允许所有请求,包括直接从互联网发送到 appspot.com 网址的请求。

访问内部服务

需要注意以下几点:

  • 对于来自共享 VPC 的请求,仅当 App Engine 应用部署在共享 VPC 宿主项目中时,流量才会被视为内部流量。如果 App Engine 应用部署在共享 VPC 服务项目中,则只有来自应用自身项目拥有的网络的流量才是内部流量。所有其他流量(包括来自其他共享 VPC 的流量)均为外部流量。

  • 访问内部服务时,请像平常一样使用它们的公开网址(即默认 appspot.com 网址或 App Engine 中设置的自定义网域)来调用它们。

  • 对于来自 Compute Engine 虚拟机实例或在同一项目内的 VPC 网络中运行的其他资源的请求,无需进一步设置。

  • 来自同一项目中 VPC 网络内资源的请求将归类为内部请求,即使这些资源具有公共 IP 地址也是如此。

  • 来自通过 Cloud VPN 连接到 VPC 网络的本地资源的请求会被视为 internal

查看入站流量设置

控制台

  1. 前往“App Engine 服务”页面。

    转到“服务”页面

  2. 找到入站流量列。对于每项服务,此列中的值会将入站流量设置显示为以下项之一:全部(默认)、内部 + 负载均衡内部

gcloud

如需使用 gcloud CLI 查看服务的入站流量设置,请运行以下命令:

gcloud app services describe SERVICE

SERVICE 替换为服务的名称。

例如,如需查看默认服务运行的入站流量设置和其他信息,请运行以下命令:

gcloud app services describe default

修改入站流量设置

控制台

  1. 前往“App Engine 服务”页面。

    转到“服务”页面

  2. 选择您要修改的服务。

  3. 点击修改入站流量设置

  4. 从菜单中选择所需的入站流量设置,然后点击保存

gcloud

如需使用 gcloud CLI 更新服务的入站流量设置,请运行以下命令:

gcloud app services update SERVICE --ingress=INGRESS

您需要进行如下替换:

  • SERVICE:您的服务的名称。
  • INGRESS:要应用的入站流量控制。allinternal-onlyinternal-and-cloud-load-balancing 之一。

例如:

  • 如需更新 App Engine 应用的默认服务,以仅接受来自 Cloud Load Balancing 和来自同一项目的 VPC 网络的流量:

    gcloud app services update default --ingress=internal-and-cloud-load-balancing
  • 如需更新名为“internal-requests”的服务以仅接受来自同一项目中的 VPC 网络的流量:

    gcloud app services update internal-requests --ingress=internal-only