2014-03-25 124 views
4

將AWS Bootstore項目(最好是jar)部署到AWS Beanstalk環境的最佳方式是什麼?或者我應該將它轉換爲WAR並以這種方式進行部署?將Spring Boot應用程序部署到AWS Beanstalk


解決方案:

基本上我所做的是這樣的:

  1. 創建新類來告訴Spring啓動我的應用程序是一個Web應用程序,我需要創造一切必要的configs :

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

    application.sources(MyBootAp p.class); }}

(2).pom文件中改變了包裝戰爭像這樣:<packaging>war</packaging>

就是這樣。

回答

3

將Spring Boot部署到Beanstalk的最簡單方法是使用Spring Guide將項目轉換爲WAR文件。然後,您只需設置您的Beanstalk應用程序以使用Tomcat並拖放WAR文件即可。 AWS負責其餘部分。

編輯:基於什麼馬克西姆做

第1步:

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

第2步:改變你的pom.xml使用<packaging>war</packaging>

+0

基本上我所做的就是這樣的: (1)創建新類: 公共類MyBootWebApp擴展SpringBootServletInitializer { @覆蓋 保護SpringApplicationBuilder配置(SpringApplicationBuilder應用){返回application.sources(MyBootApp.class); }} (2)內.pom文件改變了包裝戰爭像這樣:戰爭 就是這樣。 – Maksim

+0

這是不正確的,請參閱下面的評論http://stackoverflow.com/a/41563745/157591 –

+0

@PeterSzanto請記住,這是近3年前在Spring Boot和Beanstalk的早期版本寫成的。現在可以將它部署爲jar。 – Erich

1

我對Beanstalk的確不太瞭解,但是在我看來,Java容器只支持WAR。您仍然可以爲本地(和非Beanstalk)使用製作WAR可執行文件(例如,如在gs guide中那樣)。

+0

嗨@戴夫Syer,AWS和彈性魔豆不支持jar爲好,看到我下面的評論和我的博客文章。 –

2

您可以輕鬆地部署春季啓動應用程序作爲罐子使用Elastic Beanstalk的文件。您甚至不需要正式的Spring Boot指南中所述的boxfuse。它是那麼容易,因爲

下載EB CLI,然後在春季啓動項目文件夾運行

eb init 

的平臺選擇選項2)的Java

添加到新創建的.elasticbeanstalk /配置.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/

相關問題