本文介绍如何将Spring Boot应用部署到函数计算。与传统的部署方法相比,您可将传统的Spring Boot应用一键部署至远端直接用于生产。跳过购买机器等步骤的同时,还拥有了弹性伸缩、按量付费和免运维等特性。
背景信息
Spring Boot是由Pivotal团队在2013年开始研发,于2014年4月发布第一个版本的全新开源轻量级框架。它基于Spring 4.0设计,不仅继承了Spring框架原有的优秀特性,还通过简化配置进一步简化Spring应用的整个搭建和开发过程。此外Spring Boot通过集成大量的框架,使得依赖包的版本冲突、引用的不稳定性等问题得到了解决。
步骤一:准备环境
您无需安装Docker,仅安装Funcraft即可,最简单的方式即直接下载可执行的二进制文件。
- 安装Funcraft。
- 执行
fun --version
检查安装是否成功。
- 配置Funcraft。
步骤二:迁移应用
- 创建一个Spring Boot项目,详情请参见Spring Quickstart Guide。
- 执行以下命令进入刚创建的示例项目或您已有的项目。
- 执行以下命令运行本地项目。
- MacOS、Linux平台运行项目。
./mvnw spring-boot:run
- Windows平台运行项目。
mvnw spring-boot:run
- 在项目的根目录下执行
mvn package
命令打包。
编译输出结果与以下示例类似。
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] ------------------------------------------------------------------------
- 执行
fun deploy -y
命令将项目部署至函数计算。
Funcraft会自动进入部署流程。
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
部署成功后,您可以在日志中看到函数计算为您生成的临时域名,通过这个临时域名您可直接访问刚部署的应用。
说明 临时域名仅用作演示以及开发,具有时效性。如需用作生产,请绑定已经在阿里云备案的域名,详情请参见
绑定自定义域名。