在默认生产环境下,dispatch.yaml不适用于任务队列



我开始将一个应用程序分为两个模块,并成功地使该应用程序在应用程序引擎上运行。我可以通过使用模块/版本特定的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上的默认版本会改变它的行为?

发现它隐藏在任务队列文档中。:(

队列具有"目标"配置指令。文件中有这样的要点:

如果未指定目标,则在同一版本上调用任务他们排队的应用程序的

我相信他们在这个上下文中可以互换地使用"版本"one_answers"模块"。

这也允许我取消这些路由的dispatch.yaml文件!

相关内容

  • 没有找到相关文章

最新更新