地区 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
dispatch.yaml
可以替换路由规则。您可以使用 dispatch.yaml
根据网址中的路径或主机名向特定服务(以前称为模块)发送传入请求。
如需了解详情,请参阅请求的路由方式。
一个应用只能有一个 dispatch.yaml
文件,该文件中的路由规则将应用于应用的所有服务和版本。路由规则也适用于 cron 文件或任务队列配置中使用的网址。
部署调度文件
dispatch.yaml
文件可以位于源代码目录中的任意位置。
要在不改变当前服务版本的情况下部署调度配置文件,请根据您的环境,在包含调度文件的目录中使用下面其中一种命令:
gcloud
gcloud app deploy dispatch.yaml
Maven
mvn appengine:deployDispatch dispatch.yaml
Gradle
gradle appengineDeployDispatch dispatch.yaml
IDE
语法
dispatch.yaml
文件中的根元素是 dispatch:
,其中包含由以下子元素指定的路由定义列表。
您在调度文件中定义的规则必须使用 HTTP 网址格式,这种格式采用“.
”表示法分隔子网域。不支持使用 HTTPS“-dot-
”表示法定义的网址。
调度规则按顺序执行,并且将仅应用与网址匹配的第一项规则。
元素 | 说明 |
---|---|
service |
指定服务的名称,该服务将处理与 |
url |
在 提示:您可以在 一种网址格式,可包含主机名和网址路径。Glob 字符可用于匹配网址格式。Glob 字符只能在格式的开头和末尾指定。在引号内指定网址格式。 调度文件不会路由以 |
示例
下面的示例调度文件会将请求路由到 https://simple-sample.uc.r.appspot.com
,并将 https://simple-sample.uc.r.appspot.com/favicon.ico
等请求路由到 default
服务。所有静态内容均由 default
服务提供。像 https://simple-sample.uc.r.appspot.com/mobile/
这样的移动请求会路由到移动前端,而像 https://simple-sample.uc.r.appspot.com/work/
这样的工作器请求会路由到静态后端。
dispatch:
# Default service serves the typical web resources and all static resources.
- url: "*/favicon.ico"
service: default
# Default service serves simple hostname request.
- url: "simple-sample.uc.r.appspot.com/"
service: default
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
service: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
service: static-backend
如果您更倾向于使用可与大量可能的请求相匹配的宽泛路由规则,则可以定义范围更广泛的规则。例如:
# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.appspot.com/mobile*"
service: mobile-frontend
# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
service: static-backend
您也可以编写更严格的表达式:
# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
service: mobile-frontend
# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
service: static-backend
限制
调度文件最多可包含 20 个路由规则。指定网址字符串时,主机名和路径的长度均不能超过 100 个字符。
删除所有调度规则
要删除所有调度规则,请执行以下操作:
如下所示修改
dispatch.yaml
文件的内容:dispatch: []
将
dispatch.yaml
文件部署到 App Engine。