尝试通过调度文件运行应用程序时出现GAE错误

时间:2017-03-01 14:44:54

标签: google-app-engine google-cloud-platform

尝试使用调度文件运行我的应用程序,如下所示:

  $ dev_appserver.py dispatch.yaml app1/app.yaml app2/app.yaml

给了我以下错误:

Traceback (most recent call last):
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 101, in <module>
    _run_file(__file__, globals())
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 97, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1041, in <module>
    main()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1037, in main
    dev_server.stop()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 845, in stop
    metrics.GetMetricsLogger().Stop()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/metrics.py", line 117, in Stop
    total_run_time = int((Now() - self._start_time).total_seconds())
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'

我正在使用here中的最新gcloud安装。每个服务/模块(例如上面命令中的app1 / app2)都是用go编写的。

我的调度文件的内容:

application: my-app

– url: “*/app2/*”
module: app2

– url: “*/app1/*”
module: app1

我的python版本当然是2.7。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我也遇到了这个问题,我认为问题是dev_appserver需要一个默认模块来路由与任何调度规则不匹配的请求。

我可以通过从我的默认模块的service中删除app.yaml属性来定义默认模块,并删除该模块的调度规则。

在您的情况下,从service(如果有)中删除app1/app.yaml属性,并移除指向dispatch.yaml中app1的发送规则。

希望这有帮助!