带有运行时go111 url分配问题的dev_appserver.py

时间:2019-08-03 14:21:29

标签: google-app-engine go

我仍在努力让我的旧式Appengine至少在go111下工作(由于对内存缓存的依赖,go112无法正常工作)。我现在正在解决我的静态文件的app.yaml配置问题,我之前使用了完全静态的目录布局,并且仅在根目录中指定了一些动态处理程序,如下所示:

runtime: go111

handlers:
- url: /_ah/.*
 script: auto
 login: admin
 secure: always
- url: /dynamic
 script: auto
 secure: always
- url: /admin/.*
 script: auto
 login: admin
 secure: always
- url: (.*)/
 static_files: html\1/index.html
 upload: html/index.html
 secure: always
- url: /(.*\.map)
 mime_type: application/json
 static_files: html/\1
 upload: html/(.*\.map)
 secure: always
- url: /
 static_dir: html
 secure: always

dev_appserver.py将永远不会调用我的动态入口点。在生产中确实可以,但是我仍在进行转换,并希望在本地进行测试。有什么提示如何说服dev_appserver.py让我这样做吗?顺便说一下,我的gcloud工具今天已经更新。

1 个答案:

答案 0 :(得分:0)

您的问题是,为什么您的应用程序在部署到生产环境时可以很好地运行,而在您使用 dev_appserver.py 在本地运行时却不能正常运行,以及如何使用 dev_appserver.py 。答案是:

您将无法使用 dev_appserver.py 在本地正确运行它,因为它不支持运行时Go 1.11。查看Local Development Server Options文档,只有“ Go 1.9”的链接。

enter image description here

(如您所见,“ Go 1.11”和“ Go 1.12”的链接被禁用,这表示:不支持。)

App Engine Standard上的

Documentation for Go 1.11指出,要在本地测试您的应用程序,您必须使用“运行”命令(请注意它没有提到dev_appserver.py工具)。该命令将是这样的:

go run [build flags] [-exec xprog] package [arguments...]

有关该命令的更多信息,请转到here

我确定您可能已经阅读过此书,但是,要了解有关从Go1.9到Go1.11的迁移过程的更多信息,请阅读此documentation

您已声明“运行”命令不适用于您的情况。因此,一种解决方法是test your application directly into App Engine,但不迁移流量

部署测试版本时,请使用:

gcloud app deploy --no-promote

要访问它,请访问:

http://VERSION_ID.default.YOUR_PROJECT_ID.appspot.com

如果一切都很好,则可以在Cloud Console UI上迁移流量,选择刚刚部署的版本,然后单击“ 迁移流量”。