将Spring Boot应用程序部署到AWS Beanstalk



将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>

就是这样。

将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:使用<packaging>war</packaging> 更改pom.xml

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

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

eb init

对于平台,选择选项2(java

将这个添加到新创建的.aelasticbeanstall/config.yml文件中

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

(将罐子名称更改为匹配的名称(

然后将应用程序添加到应用程序属性中,将其更改为侦听端口5000

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/

我对Beanstalk的了解还不够,但在我看来,Java容器只支持WAR。您仍然可以使WAR可执行以供本地(和非Beanstalk(使用(例如,如gs指南中所述(。

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

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

最新更新