【问题标题】:How to deploy a SpringBoot REST Application to Google App Engine?如何将 Spring Boot REST 应用程序部署到 Google App Engine?
【发布时间】:2015-10-27 14:04:15
【问题描述】:

试过

已订阅 GoogleAppEngine 试用版。

1. INSTALLED GOOGLE APP ENGINE SDK
2. Downloaded the sample Java started code and deployed it. Working fine.
3. Used $appcfg.sh -A <appname> update target/appengine-try-java-1.0 to deploy
4. In this case, its a folder with all the webapp related stuffs

问题

就我而言,我有一个生成 jar 文件的 spring boot 应用程序。它使用嵌入式容器运行,我相信 Google 可能会使用 Docker 或其他方式进行部署。但是怎么做呢?

据我搜索,没有关于如何在 Google 托管平台上运行它的指针或任何详细信息。

任何帮助或参考文档!替代品??

【问题讨论】:

  • 您可以为您的 Spring Boot 应用程序生成一个 WAR 文件。只需查看有关如何使用 Maven 或 Gradle 执行此操作的官方文档,具体取决于您使用的是哪一个。
  • @manish 任何 +s -s 将其包装为 web 应用程序?你能指出我的官方文档吗? appcfg.sh 只接受 war 目录,我可以简单地 maven 将它打包为一个 war,它会给我一个带有 webapp 的文件夹。但我想知道谷歌是否提供任何官方推荐。
  • 在运行时使用 JAR v/s WAR 对应用程序没有影响。默认生成的 fat JAR 只是为了方便。见How to create a deployable WAR file。如果您使用 Maven,您可以将 AppEngine Maven 插件添加到您的 POM 文件中,然后运行 ​​mvn appengine:update 将 WAR 推送到 AppEngine。请注意,AppEngine 不支持所有 Java EE 功能,因此如果遇到任何问题,您必须自己解决。
  • +1 appengine-maven-plugin 建议。我只为我的移动应用声明了几个 REST 端点,我会缺少哪些功能支持?
  • This page 拥有所有详细信息。

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


【解决方案1】:

【讨论】:

  • 看起来很有希望..让我们试试
  • 它也处于测试阶段(截至 2016 年 11 月)。您已收到警告。
  • App Engine 柔性环境自 2017 年 3 月 9 日起正式发布 (GA)。您可以运行具有 99.95% SLA 的 Node.js、Ruby、Python、Java 和 Go 应用程序。 - cloud.google.com/appengine/docs/flexible/java/release-notes
  • Google App Engine 与 Servlet 2.5 API 绑定,因此您无法部署 Spring Boot 应用程序,因为它使用 Servlet 3.0。我们如何在 App Engine Flexible 中解决这个问题?
  • @Majico :您可以将 Java 8 Runtime 与 App Engine 灵活环境一起使用,并将您的 Spring Boot 打包到 Docker 中:cloud.google.com/appengine/docs/flexible/java/dev-java-only
【解决方案2】:

Spring Boot 需要 GAE 没有的 Servlet 3.0。解决方法是有一个“spring-boot-legacy”依赖。您可以进一步查看如何实施:https://github.com/scratches/spring-boot-sample-gae

【讨论】:

    【解决方案3】:

    Google App Engine 仍然使用低于 Spring Boot 要求的 Servlet 2.5(即 Servlet 3.0)。

    有一种解决方法,请查看the documentation for more details

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 2020-01-19
      • 2018-06-12
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2020-09-01
      相关资源
      最近更新 更多