我仍在努力让我的旧式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工具今天已经更新。
答案 0 :(得分:0)
您的问题是,为什么您的应用程序在部署到生产环境时可以很好地运行,而在您使用 dev_appserver.py 在本地运行时却不能正常运行,以及如何使用 dev_appserver.py 。答案是:
您将无法使用 dev_appserver.py 在本地正确运行它,因为它不支持运行时Go 1.11。查看Local Development Server Options文档,只有“ Go 1.9”的链接。
(如您所见,“ 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上迁移流量,选择刚刚部署的版本,然后单击“ 迁移流量”。