我开始将一个应用程序拆分为两个模块,并成功地让该应用程序在 App Engine 上运行。我可以通过使用模块/版本特定的 URL 来驱动流量并查看处理的请求和任务队列事件没有错误来验证新配置。
例如,使用 - http://micro-services.msn-transit-api.appspot.com - 正确地将流量驱动到新的非默认版本。
但是,当我在 GAE 控制台中更新默认版本时,应该分派到新模块的请求没有正确路由。它们被分派到默认模块并由于端点移动而失败。
就好像 dispatch.yaml 没有被激活一样。
默认应用 yaml 文件:
application: msn-transit-api
module: default
version: micro-services
runtime: python27
api_version: 1
threadsafe: true
instance_class: F1
automatic_scaling:
min_idle_instances: 3
新模块 yaml 文件:
application: msn-transit-api
module: stats-and-maps
version: micro-services
runtime: python27
api_version: 1
threadsafe: true
instance_class: B1
basic_scaling:
max_instances: 1
handlers:
# map apps
- url: /map(.*)
script: stats_and_maps.maps.map.app
# stats task
- url: /stats/new/.*
script: stats_and_maps.stats.stathat.application
调度 yaml :
dispatch:
- url: "*/map*"
module: stats-and-maps
- url: "*/stats/*"
module: stats-and-maps
值得注意的是,失败的端点会受到任务队列中的作业的影响。
为什么在 GAE 上默认版本会改变其行为?