区域 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 网络的资源的请求,例如:
appspot.com 网址访问您的服务也是如此。来自其他来源(包括互联网)的请求无法通过 appspot.com 网址或自定义网域访问您的服务。不支持多租户,即同一项目中的多个信任网域。 |
内部和 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
。
- 对于来自其他 App Engine 服务或来自同一项目中的 Cloud Run 或 Cloud Run 函数的请求,请将服务或函数连接到 VPC 网络,并通过连接器路由所有出站流量,具体请参阅连接到共享 VPC 网络。
查看入站流量设置
控制台
前往“App Engine 服务”页面。
找到入站流量列。对于每项服务,此列中的值会将入站流量设置显示为以下项之一:全部(默认)、内部 + 负载均衡或内部。
gcloud
如需使用 gcloud CLI 查看服务的入站流量设置,请运行以下命令:
gcloud app services describe SERVICE
将 SERVICE 替换为服务的名称。
例如,如需查看默认服务运行的入站流量设置和其他信息,请运行以下命令:
gcloud app services describe default
修改入站流量设置
控制台
前往“App Engine 服务”页面。
选择您要修改的服务。
点击修改入站流量设置。
从菜单中选择所需的入站流量设置,然后点击保存。
gcloud
如需使用 gcloud CLI 更新服务的入站流量设置,请运行以下命令:
gcloud app services update SERVICE --ingress=INGRESS
您需要将其中的:
- SERVICE:您的服务的名称。
- INGRESS:要应用的入站流量控制。
all
、internal-only
或internal-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
出站流量设置
如果您使用无服务器 VPC 访问通道,则可以为 App Engine 服务指定出站流量设置。
默认情况下,只有对内部 IP 地址和内部 DNS 名称的请求会通过无服务器 VPC 访问通道连接器进行路由。您可以在 app.yaml
文件中为您的服务指定出站流量设置。
出站流量设置与 URL Fetch 服务不兼容。
如果使用 urlfetch
库,则系统会忽略出站流量设置,并且请求不会通过无服务器 VPC 访问通道连接器进行路由。
如需配置 App Engine 服务的出站流量行为,请执行以下操作:
将
egress_setting
特性添加到服务的app.yaml
文件的vpc_access_connector
字段中:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
您需要将其中的:
- 将
PROJECT_ID
替换为您的 Google Cloud 项目 ID - 将
REGION
替换为连接器所在的区域 - 将
CONNECTOR_NAME
替换为连接器的名称 - 将
EGRESS_SETTING
替换为以下项之一:
- 将
部署该服务:
gcloud app deploy