0

最近尝试更新我的 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)。

4

2 回答 2

1

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

我不确定项目中使用了哪些插件。从 Gaelyk Temple 项目中,我可以看到它正在使用appengine-geb它,根据文档,在幕后,它正在使用gradle-appengine-plugin(此文档上的链接错误,但正确的是波纹管)。

在我的githubgradle-appengine-plugin发现了以下内容。

  1. 有一个注释:

注意:我们鼓励所有 App Engine 用户为其项目过渡到新的 gradle 插件。

  1. FAQ部分有以下信息:

如何使用 gcloud 进行部署?

如果您使用 gcloud 部署应用程序,最新版本的 app deploy > 不支持 war 目录,您需要为其提供 app.yaml 或者您可以使用 appengineStage 任务创建可部署的目录在 /build/staged-app

$ ./gradlew appengineStage

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

笔记:

  • 您必须明确定义要上传的所有配置文件(cron.yaml 等)
  • 这不适用于 EAR 格式的项目。

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

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

于 2020-09-22T08:14:22.737 回答
0

我可以确认Serge在 Gaelyk Groups 网站上的回答有效;他想出的相同程序也对我有用。总结一下:

  1. 运行gradlew appengineRun与之前使用 Gaelyk 运行的一样。
  2. 将build\exploded-app\WEB-INF\lib文件夹中的所有 jar 文件复制到\src\main\webapp\web-inf\lib文件夹中(对我来说,新的 lib 文件夹以前不存在)。
  3. 要进行部署,请使用新的必需 gcloud 工具,而不是运行gradlew appengineUpdate(现在失败),而是运行 gcloud app deploy appengine-web.xml,该 XML 文件可以在您的 webapp/WEB-INF 目录中找到。我导航到该目录以运行 gcloud 命令,但如果您的工作目录位于其他位置,则可以在该目录中使用相对路径。(有许多与 gcloud app deploy 命令相关的可选标志,但我不需要其中任何一个。)
  4. Serge 需要使用这些说明datastore-indexes.xml转换为index.yaml并运行gcloud app deploy index.yaml,但是,我不需要这样做,因为我没有数据存储。
于 2020-09-29T22:15:20.633 回答