我正在查看有关 dispatch.yaml 的各个页面,其中大部分包含类似的信息和示例:
https://cloud.google.com/appengine/docs/flexible/nodejs/how-requests-are-routed#routing_with_a_dispatch_file https://cloud.google.com/appengine/docs/python/config/dispatchref https:// cloud.google.com/appengine/docs/go/config/dispatchref 等。
我碰巧在 GAE 灵活环境中使用 node.js,但我认为每种语言和环境都是一样的。
问题是这些页面并没有真正指定 dispatch.yaml 是如何工作的。尤其:
- 规则是否按照给定的顺序应用?我假设第一个匹配规则是使用的,但似乎没有这样说。
- 前导 glob(通配符)字符是否仅匹配域名,或者它们是否可以匹配 URL 路径的第一部分?如果规则是
*/hello
,那会匹配myapp.appspot.com/path/hello
吗?根据文档中的一些模糊提示,我猜不是,但不是很清楚。 - 如果 dispatch.yaml 中没有规则匹配 URL,是否会被路由到默认服务?我认为它必须这样做,但同样,这些页面没有说。
- URL 在发送到服务之前是否会根据规则重写?如果规则是
*/path/*
并且 URL 是https://myapp.appspot.com/path/hello
,服务会将其视为/path/hello
还是/hello
?我猜是前者。
我现在正在做一些试验和错误,所以我可能很快就能回答我自己的问题。我还通过他们的文档反馈系统将其提交给 Google。