【问题标题】:Deploy Spring Boot app to AWS Beanstalk将 Spring Boot 应用程序部署到 AWS Beanstalk
【发布时间】:2014-05-03 23:32:57
【问题描述】:

将 Spring Boot 项目(最好是 jar)部署到 AWS Beanstalk 环境的最佳方式是什么。还是我应该将其转换为 WAR 并以这种方式部署?


解决方案:

基本上我做的是这样的:

  1. 创建了一个新类来告诉 Spring Boot 我的应用是一个 Web 应用,并且我需要创建所有必要的配置:

    public class MyBootWebApp extends SpringBootServletInitializer { 
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return
    

    application.sources(MyBootApp.class); } }

(2) .pom 文件内将包装更改为 war,如下所示:<packaging>war</packaging>

就是这样。

【问题讨论】:

    标签: jar war spring-boot


    【解决方案1】:

    将 Spring Boot 部署到 Beanstalk 的最简单方法是使用 Spring Guide 将您的项目转换为 WAR 文件。然后,您只需将 Beanstalk 应用程序设置为使用 Tomcat 并拖放 WAR 文件。 AWS 负责其余的工作。

    编辑:基于 Maksim 所做的事情

    第 1 步:

    public class MyBootWebApp extends SpringBootServletInitializer {
        @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyBootApp.class);
        }
    }
    

    第 2 步:更改 pom.xml 使用 <packaging>war</packaging>

    【讨论】:

    • 基本上我所做的是:(1)创建新类:public class MyBootWebApp extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyBootApp.class); } } (2) 在 .pom 文件中将包装更改为 war,如下所示:war 就是这样。
    • 这不是真的,看我下面的评论stackoverflow.com/a/41563745/157591
    • @PeterSzanto 请记住,这是近 3 年前在 Spring Boot 和 Beanstalk 的早期编写的。现在可能可以将其部署为 jar。
    【解决方案2】:

    您可以使用 Elastic Beanstalk 轻松地将 Spring Boot 应用程序部署为 jar 文件。你甚至不需要官方 Spring Boot 指南中描述的 boxfuse。就这么简单

    下载 EB CLI,然后在你的 spring boot 项目文件夹中运行

    eb init
    

    对于平台选择选项 2) java

    添加到新创建的 .elasticbeanstalk/config.yml 文件中

    deploy:
         artifact: target/spring-boot-aws-example-0.0.1-SNAPSHOT.jar
    

    (将 jar 名称更改为匹配的名称)

    然后将您的应用程序更改为侦听端口 5000,方法是将其添加到您的 application.properties

    server.port=5000
    

    然后做

    # Prerequisite : generate deployment artifact
    mvn clean install
    
    # Create a load balancing, auto-scaling environment
    eb create
    

    我的博客文章中介绍了该过程的全部细节: https://exampledriven.wordpress.com/2017/01/09/spring-boot-aws-elastic-beanstalk-example/

    【讨论】:

      【解决方案3】:

      我对 Beanstalk 的了解并不多,无法确定,但在我看来,Java 容器只支持 WAR。您仍然可以使 WAR 可执行以供本地(和非 Beanstalk)使用(例如,在 gs guide 中)。

      【讨论】:

      • 嗨 @Dave Syer,aws 和 Elastic beanstalk 也支持 Jar,请参阅我的以下评论和我的博客文章。
      【解决方案4】:

      将 Spring Boot 项目部署到 AWS Beanstalk,最好在 jar 文件中:

      1. 从 maven pom.xml 将包装更改为“jar”
      2. 从 AWS Beanstalk --> 创建一个新的应用程序
      3. 在应用程序内部 --> 创建一个新环境
      4. 从 Selecting Environment Tier 中选择 --> Web Server Environment
      5. 在 web 配置之后 --> 从“平台”必须选择“Java”(在这种情况下不是 Tomcat,因为将提供一个已经包含嵌入式 tomcat 的 jar 文件,AWS Beanstalk 为我们提供了托管服务器在哪里建立了 Linux 操作系统、JVM 和兼容的应用程序,以运行支持我们的应用程序所需的任何东西。如果我们要部署 war 文件,那么必须选择 tomcat)
      6. Java 平台还支持部署 'jar' 文件(尽管写成 .zip/.war)

      【讨论】:

        猜你喜欢
        • 2015-01-25
        • 2020-07-05
        • 2018-12-31
        • 2015-09-07
        • 2017-09-28
        • 2020-11-09
        • 2021-02-11
        • 2018-12-07
        • 1970-01-01
        相关资源
        最近更新 更多