我正在尝试更新利用两个模块(默认和批处理)的应用程序。
运行'appcfg update app.yaml batchratings.yaml'后,我收到以下输出:
错误400:---开始服务器输出--- 验证错误:无效的调度配置 - 模块“批处理”不存在。上传此模块的版本,然后重试。
鉴于这正是我试图通过遵循模块演练中概述的步骤所做的事情,我很确定我忽略了一些显而易见的事情。
来源可在此处获得: https://dl.dropboxusercontent.com/u/7537204/literumble.zip,如果这有助于任何人。
如果有人能够提供有关我应该寻找哪个方向来解决问题,我会非常感激。
答案 0 :(得分:5)
我遇到了同样的问题,我试图做类似的事情:
appcfg.py update <my_app_dir> app.yaml batchratings.yaml
但appcfg.py帮助更新显示,如果您传递目录,它将始终采用app.yaml。要获取其他模块,您需要使用每个模块的文件路径:
appcfg.py update <my_app_dir>/app.yaml
appcfg.py update <my_app_dir>/batchratings.yaml
为了解决这个问题,它帮助我传递-v以确保它正在更新我传递的模块。
答案 1 :(得分:1)
如果你的应用程序有模块,而不是运行appcfg.py my_app_dir
,你可以改为cd my_app_dir
,然后运行appcfg.py app.yaml mod1.yaml mod2.yaml
等。
不要运行appcfg.py *.yaml
,否则你可能会冒着包括dispatch.yaml(如果存在)的风险,因为这会因为&#34;意外的属性而导致失败&#39; dispatch&#39;对于AppInfoExternal类型的对象&#34;。
请务必在之后运行appcfg.py update_dispatch .
,以上传调度条目。
答案 2 :(得分:0)
我首先认为它与app.yaml没有模块有关,但根据我正在查看的示例,这是不正确的。
我认为它可能实际上是一个非常愚蠢的事情,你的dispatch.yaml指向批量生产&#39;但是你的实际模块名称是&#39; BatchRankings.py&#39;。注意大写。