Spring Boot 是由 Pivotal 團隊提供的框架,用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置,因此 Spring Boot 框架也成為了當前非常流行的框架。
如今,您可以通過 Serverless 應用控制台,進行極其簡單的代碼改造,就可以遷移您的 SpringBoot 應用上雲。
功能優勢
- 低改造成本: Serverless 組件自動幫助用戶完成框架上雲的適配轉換,用戶只需聚焦業務核心代碼,進行極少的代碼改造,即可完成雲端部署。
- 應用層級資源展示與管理: 部署成功后,用戶可以方便地通過 Serverless 應用控制台將查看和管理創建的雲端資源,無需多個頁面切換,實現多資源的集中管理。
- 代碼持續更新: 支持持續構建,當文件夾上傳到的內容有更新時,可以自動觸發重新部署。
- 應用層級監控圖表: 提供了應用層級的監控能力,用戶不僅可以看到每個資源的調用次數、錯誤次數等信息,還可以看到應用層級的監控指標,方便運維。
根據以下教程步驟,快速體驗框架遷移:
部署前提:賬號已開通 Serverless Framework:https://console.cloud.tencent.com/sls 與 Coding DevOps:https://console.cloud.tencent.com/coding 服務,登陸控制台,會自動為您進行開通,開通流程不會產生何費用。
創建應用
基於模版創建
- 進入 Serverless 應用控制台,點擊【新建應用】,進入應用創建頁。
- 填入您的應用名稱,【創建方式】選擇【應用模版創建】,選擇 Spring Boot 框架。
- 點擊【創建】,Serverless 控制台會自動開始為您部署應用,部署完成后,進入應用詳情頁,可以 查看創建的雲上資源、監控日志、部署記錄 等信息,也支持在“開發部署”頁面修改配置,重新部署。
導入已有項目
- 代碼改造:若使用自己的 SpringBoot 項目代碼進行部署需要進行如下的改造
- 在項目
pom.xml
中新增騰訊雲函數(需為0.0.3版本)和fastjson的依賴(若自身項目有所用版本可不修改,若無則請依賴最新版本)。
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>scf-java-events</artifactId>
<version>0.0.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
- 在項目的根目錄的
src/main/java
的任意目錄下新增一個執行方法入口,例如:在 src/main/java/example 目錄下新建 MyHandler.java
package example;
import com.qcloud.scf.runtime.AbstractSpringHandler;
public class MyHandler extends AbstractSpringHandler {
@Override
public void startApp() {
System.out.println("start app");
// 修改為springboot項目的入口主函數,例如: 入口為DemoApplication class下的main函數
DemoApplication.main(new String[]{""});
}
}
-
將代碼用 Maven 創建
jar
部署包或者用 Gradle 創建 zip 部署包。需要將項目所有的依賴包一起打包,例如使用
Maven
則推薦用maven-shade-plugin
進行打包,修改pom.xml
中的plugin
:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.1</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
- 修改 serverless.yml 文件中的
projectJarName
配置為打包后的 .jar/.zip 文件名,.jar/.zip 文件需要放與 serverless.yml 同級。
如:使用 Maven 打包后生成了 code.jar 文件,則 projectJarName 為
code.jar
- 修改 serverless.yml 文件中的
functionConfig
的handler
配置,格式為[package].[class]::mainHandler
其中 package 為更多層時用.
連接。
如:如新建的 MyHandler.java 放在了 src/main/java/example 中,則 handler 為
example.MyHandler::mainHandler
- 進入 Serverless 應用控制台,點擊【新建應用】,進入應用創建頁。
- 填入您的應用名稱,【創建方式】選擇【導入已有項目】,選擇 Spring Boot 應用,直接導入您的已有項目。選擇【本地上傳】代碼上傳方式,上傳Maven 創建 jar 部署包或者用 Gradle 創建 zip 部署包。
- 點擊【創建】,Serverless 控制台會自動開始為您部署應用,部署完成后,進入應用詳情頁,可以查看創建的雲上資源、監控日志、部署記錄等信息,也支持在“開發部署”頁面修改配置,重新部署。
管理應用
應用創建完成后,可以在應用詳情頁,完成查看項目具體信息,主要支持以下幾部分管理功能。
1. 資源管理
在【資源列表】頁,支持查看當前應用為您創建的雲資源,並查看基本配置信息。
2. 開發部署
在應用詳情頁頂部,單擊【開發部署】,您可以輕松地實現應用的配置修改與二次部署上傳,目前SpringBoot 僅框架支持 本地上傳方式。
同時,您也可以在該頁面修改應用配置信息,點擊“保存”完成重新部署。
3. 應用監控
在【應用監控】頁面,您可以查看項目部署后輸出的基本信息、項目請求次數、項目報錯統計等多項監控指標,方便您輕松實現項目的管理運維。
4. 部署日志
在【部署日志】頁面,可以看到【通過控制台部署】或【自動觸發】的部署日志,以及部署結果。
到這里,只需要極其簡單的代碼改造,就完成了將您的 Spring Boot 應用遷移至 Serverless 的操作,並可以進行應用的監控管理,持續開發,享受 Serverless 帶來的眾多優勢。
歡迎前往控制台體驗!
One More Thing
立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 serverless/start
歡迎訪問:Serverless 中文網!