遷移 Spring Boot 到函數計算

etienne-bosiger-WTkUYzNCu-A-unsplash.jpg 首先介紹下在本文出現的幾個比較重要的概念:html

函數計算(Function Compute): 函數計算是一個事件驅動的服務,經過函數計算,用戶無需管理服務器等運行狀況,只需編寫代碼並上傳。函數計算準備計算資源,並以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考。 Fun: Fun 是一個用於支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日誌服務等資源。它經過一個資源配置文件(template.yml),協助您進行開發、構建、部署操做。Fun 的更多文檔 參考git

備註: 本文介紹的技巧須要 Fun 版本大於等於 3.6.3。 2github

背景信息

Spring Boot 是由 Pivotal 團隊在 2013 年開始研發,2014 年 4 月發佈第一個版本的全新開源的輕量級框架。它基於 Spring4.0 設計,不只繼承了 Spring 框架原有的優秀特性,並且還經過簡化配置來進一步簡化了 Spring 應用的整個搭建和開發過程。另外 Spring Boot 經過集成大量的框架使得依賴包的版本衝突,以及引用的不穩定性等問題獲得了很好的解決。spring

步驟一:環境準備

本文介紹的方法,不須要安裝 Docker,僅僅安裝 Fun 便可,最簡單的方式就是直接下載可執行的二進制文件。windows

  1. 安裝 Fun 到本機。詳情請參見安裝文檔
  2. 執行 fun --version 檢查安裝是否成功。

步驟二:遷移流程

  1. 建立一個 Spring Boot 項目,詳情請參見 Spring Quickstart Guide,如有 Spring Boot 項目則跳過該步驟。服務器

  2. 進入到剛剛建立的示例項目中或您的項目中。app

    cd <project-name>
  3. 本地運行項目。框架

  • MacOS、Linux 平臺運行項目:
    ./mvnw spring-boot:run
  • windows 平臺運行項目:
    mvnw spring-boot:run
  1. 在項目的根目錄下執行mvn package命令打包,編譯輸出相似以下。。less

    $mvn package
    	[INFO] Scanning for projects...
    	[INFO] 
    	[INFO] ----------------------< com.example:Spring-Boot >-----------------------
    	[INFO] Building Spring-Boot 0.0.1-SNAPSHOT
    	[INFO] --------------------------------[ jar ]---------------------------------
    	[INFO] 
    	[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ Spring-Boot ---
    	... ... ...
    	[INFO] 
    	[INFO] Results:
    	[INFO] 
    	[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    	[INFO] 
    	[INFO] 
    	[INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ Spring-Boot ---
    	[INFO] Building jar: /Users/txd123/Desktop/Spring-Boot/target/Spring-Boot-0.0.1-SNAPSHOT.jar
    	[INFO] 
    	[INFO] --- spring-boot-maven-plugin:2.2.6.RELEASE:repackage (repackage) @ Spring-Boot ---
    	[INFO] Replacing main artifact with repackaged archive
    	[INFO] ------------------------------------------------------------------------
    	[INFO] BUILD SUCCESS
    	[INFO] ------------------------------------------------------------------------
    	[INFO] Total time:  38.850 s
    	[INFO] Finished at: 2020-03-31T15:09:34+08:00
    	[INFO] ------------------------------------------------------------------------
  2. 部署項目到函數計算僅須要一個命令 fun deploy -y,Fun 會自動進入部署流程。運維

    $fun deploy -y
    	current folder is not a fun project.
    	Generating template.yml...
    	Generate Fun project successfully!
    	========= Fun will use 'fun deploy' to deploy your application to Function Compute! =========
    	using region: cn-qingdao
    	using accountId: ***********3743
    	using accessKeyId: ***********Ptgk
    	using timeout: 60
    
    	Collecting your services information, in order to caculate devlopment changes...
    
    	Resources Changes(Beta version! Only FC resources changes will be displayed):
    
    					trigger httpTrigger deploy success
    			function Spring-Boot deploy success
    	service Spring-Boot deploy success
    
    	Detect 'DomainName:Auto' of custom domain 'Domain'
    	Request a new temporary domain ...
    	The assigned temporary domain is 15639196-XXX.test.functioncompute.com,expired at 2020-04-10 15:19:56, limited by 1000 per day.
    	Waiting for custom domain Domain to be deployed...
    	custom domain Domain deploy success

    部署完成後,您能夠根據部署成功的日誌看到,函數計算爲您生成了臨時域名 ,您經過這個臨時域名直接訪問剛剛部署的應用。

    **注意:**臨時域名僅僅用做演示以及開發,是有時效的,若是用做生產,請綁定已經阿里雲備案的域名,能夠參見 綁定自定義域名

總結

本文介紹如何將 Spring Boot 應用部署到函數計算。與傳統的部署方法相比,您可將傳統的 Spring Boot 應用一鍵部署至遠端直接用於生產。跳過購買機器等步驟的同時,還擁有了彈性伸縮、按量付費和免運維等特性。

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術圈。」

相關文章
相關標籤/搜索