GAE:由于 appcfg 失去支持,无法再更新我的 Gaelyk 项目

GAE: No longer able to update my Gaelyk project due to appcfg losing support

最近尝试更新我的 Gaelyk 项目(是的,它很旧,但运行良好,我仍在使用它),但 Google App Engine 将不再接受更新。返回的错误消息是“不再支持使用 appcfg 的部署。请参阅 https://cloud.google.com/appengine/docs/deprecations"。问题是,我从未使用 appcfg 部署我的应用程序;我使用 Gaelyk 和 Gradle。但显然 Gaelyk 必须使用幕后的 appcfg。

我确实下载了替换 Google Cloud SDK,但这个新工具与 Gaelyk 和 Gradle 的工作方式完全不同。我可以做些什么来让 Gaelyk 继续工作吗?或者 Gaelyk 刚刚死了,我需要重写我的应用程序(比如 Node.js 或其他而不是 Groovy)。

这会很难,但我会尽力帮助你。我认为您可以尝试以某种方式将其迁移到 GAE 的 app.yaml 配置。

我不清楚项目中使用了哪些插件。来自 Gaelyk temple project I can see that it's using appengine-geb which, according to the documentation,在幕后,正在使用 gradle-appengine-plugin(此文档上有错误的 link,但下面是正确的)。

gradle-appengine-plugingithub 上,我发现了以下内容。

  1. 有备注:

NOTE: All App Engine users are encouraged to transition to the new gradle plugin for their projects.

  1. 而在FAQ部分有以下信息:

How do I deploy with gcloud?

If you're using gcloud to deploy your application, the newest version of app deploy > doesn't support war directories, you will need to provide it with an app.yaml OR you can use the appengineStage task to create a directory that is deployable in /build/staged-app

$ ./gradlew appengineStage

$ gcloud app deploy build/staged-app/app.yaml --project [app id] --version [some version]

NOTES:

  • You must explicitly define all config files your want to upload (cron.yaml, etc)
  • This does not work with EAR formatted projects.

我认为最好的选择是迁移到新的 appenine 插件,或者如果不可能,请尝试使用 gcloud app deploy 命令手动创建配置文件(至少 app.yaml)。对于这次迁移,我可以为您提供 document.

我希望你能以某种方式管理...

我可以确认 Gaelyk Groups 网站上的 Serge's answer 有效;他想出的相同程序也对我有用。总结:

  1. 运行 gradlew appengine运行 as 运行 以前使用 Gaelyk。
  2. build\exploded-app\WEB-INF\lib 文件夹中的所有 jar 文件复制到 \src\main\webapp\web-inf\lib 文件夹中(对我来说,新的lib 文件夹以前不存在)。
  3. 要部署,请使用所需的新 gcloud 工具,而不是 运行ning gradlew appengineUpdate(现在失败),而是 运行 gcloud app deploy appengine-web.xml 其中 XML 文件可以在您的 webapp/WEB-INF 目录中找到。我导航到该目录以 运行 gcloud 命令,但如果您的工作目录在其他地方,您可以在那里使用相对路径。 (有许多与 gcloud app deploy 命令关联的可选标志,但我不需要它们中的任何一个。)
  4. Serge 需要使用 these instructionsdatastore-indexes.xml 转换为 index.yaml 和 运行 gcloud app deploy index.yaml,但是,我不需要这样做,因为我没有数据存储。