快速部署 Spring PetClinic 到函数计算平台
简介
首先介绍下在本文出现的几个比较重要的概念:
函数计算(Function Compute):[函数计算](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=http://fc.console.aliyun.com/?fctraceid=YXV0aG9yJTNEJUU1JTgwJTlBJUU4JUI0JUE0JTI2dGl0bGUlM0QlRTUlQkYlQUIlRTklODAlOUYlRTklODMlQTglRTclQkQlQjIlMjBTcHJpbmclMjBQZXRDbGluaWMlMjAlRTUlODglQjAlRTUlODclQkQlRTYlOTUlQjAlRTglQUUlQTElRTclQUUlOTclRTUlQjklQjMlRTUlOEYlQjA=)是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息[参考](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://help.aliyun.com/product/50980.html)。
Funcraft:Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档参考。
spring-petclinic:PetClinic 是一个 Spring Boot 、Spring MVC 和 Spring Data 结合使用的示例项目,是学习 Spring Boot 经典案例。
Spring 框架是由一些小而美的 Java 框架以松散耦合的方式集成在一起。这些 Java 框架可以独立或者集成使用以构建许多不同类型的工业级应用程序。PetClinic 示例应用程序是为了说明如何使用 Spring 应用程序框架来构建简单且功能强大的面向数据库的应用程序。它演示了 Spring 核心功能用法。
使用控制反转和 MVC 的 Web 表示层,基于 JavaBeans 的应用程序配置,通过 JDBC,Hibernate 或 JPA 进行数据库访问,基于 JMX 声明式事务管理的应用程序监视,使用 AOP 数据验证来支持但不依赖于表示层的 Spring 框架提供了大量有用的基础结构,以简化应用程序开发工作。
本应用模板使用函数计算的 [Custom 运行时](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://help.aliyun.com/document_detail/132044.html)和 RDS-MySQL 云服务作为 Spring Boot 应用的运行环境。借助于资源编排服务(ROS)的能力,该模板会自动创建 VPC、VSwitch、SecurityGroup、RDS 和绑定了 HTTP Trigger 的函数,以及绑定到 HTTP 函数的自定义域名,并自动配置好这些服务,以达到迅速上线开箱即用的效果。
注意:
- 需要提供一个域名(支持二级域名),如果部署在国内 Region 该域名需要在阿里云备案,然后把域名的 CNAME 记录指向
12345.cn-shanghai.fc.aliyuncs.com
,其中12345
换成您的 AccountID,如果是在国外 Region 可以免去备案环节,请查看更多参考 - 模板创建的 RDS-MySQL 云服务选用了最便宜的按量付费实例,费用大约为:¥0.236/小时,使用前需要确保账户有 100 元的余额,并且试用完成以后建议通过 ROS 控制台删除该应用,以免产生超出预期的费用。
快速开始
下面我们借助于函数计算的应用中心,快速地将 Spring PetClinic 快速部署到函数计算平台。
- 打开函数计算 [Spring PetClinic 应用详情页](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://fc.console.aliyun.com/fc/applications/cn-hongkong/template/Spring-PetClinic#intro)。如果您尚未开通函数计算服务可能需要先,开通服务是免费的,另外函数计算有每月免费额度,试用服务不会产生费用。
- 滚动到 [Spring PetClinic 应用详情页](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://fc.console.aliyun.com/fc/applications/cn-hongkong/template/Spring-PetClinic#intro)的最底部,点击“立即部署”按钮。
- 填写应用名称和域名,其中域名需要先去设定 DNS 的 CNAME 记录,然后点击“部署”按钮。
- 稍等片刻,等到部署成功以后,拷贝 URL 网址。
- 在浏览器中打开上面拷贝的网址
工作原理
本示例中,我们打算使用函数计算的 [Custom 运行时](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://help.aliyun.com/document_detail/132044.html) 来移植 Petclinic 项目。顾名思义, Custom Runtime 就是自定义的执行环境, 用户基于 Custom Runtime 可以完成以下目标:
- 可以随心所欲持定制个性化语言执行环境(例如 Golang、Lua、Ruby)以及各种语言的小版本(例如 Python3.7、Nodejs12 )等,打造属于自己的自定义 Runtime
- 现有的 Web 应用或基于传统开发 Web 项目基本不用做任何改造,即可将项目一键迁移到函数计算平台
该应用的架构图如下:
定制化开发
依赖工具
本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。
- Docker
- Funcraft
Fun 工具依赖于 docker 来模拟本地环境。
对于 MacOS 用户可以使用 homebrew 进行安装:
brew cask install docker
brew tap vangie/formula
brew install fun
Windows 和 Linux 用户安装请参考:
- https://github.com/aliyun/fun/blob/master/docs/usage/installation.md
安装好后,记得先执行 fun config
初始化一下配置。
注意, 如果你已经安装过了 funcraft,确保 funcraft 的版本在 3.2.1 以上。
$ fun --version
3.2.1
初始化
git clone https://github.com/awesome-fc/spring-petclinic-for-serverless
cd spring-petclinic-for-serverless
编译打包
mvn package -Dmaven.test.skip=true
本地运行
MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_DBNAME=petclinic MYSQL_USER=root MYSQL_PASSWORD= ./bootstrap
请在运行上述命令前启动好本地的 MySQL 数据库,并将上述 MYSQL_*
的值替换为您本地 MySQL 数据库的配置。
部署
make deploy
为了获得更好的开发体验,建议安装 Aliyun Serverless VSCode Extension
参考链接
- [Serverless 实战 —— 移植 spring-petclinic 到函数计算](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://yq.aliyun.com/articles/724662)
- Funcraft
- Aliyun Serverless VSCode Extension
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”
快速部署 Spring PetClinic 到函数计算平台相关推荐
- 使用 OpenAI、阿里云函数计算平台和 PyQt5 创造智能图片生成器
使用 OpenAI.阿里云函数计算平台和 PyQt5 创造智能图片生成器 0. 效果演示 1. 引言 随着人工智能技术的不断发展,越来越多的应用开始融入我们的生活.在这篇博客中,我将介绍如何利用 Op ...
- 迁移 Spring Boot 到函数计算
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准备计 ...
- 如何迁移 Spring Boot 到函数计算
作者 | 田小单 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上 ...
- 如何使用 Serverless Devs 部署静态网站到函数计算(上)
简介:部署个静态网站到函数计算~ 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站. FC 弹性实例自带的500 Mb 存储空间对 ...
- 好嗨呦 之 快速部署 Spring Boot 项目
LZ-Says:2019 年第一场雨,淋成 ?... 前言 后台接口的逻辑就是强大呢. 一个看似很简单的功能,后台接口要处理很多东西,感觉好爽. 接口搞完俩个,虽说不是那么的尽人意,好歹,一天比一天熟 ...
- 开源函数计算平台 OpenFunction 保姆级入门教程
OpenFunction 0.6.0 上周已经正式发布了,带来了许多值得注意的功能,包括函数插件.函数的分布式跟踪.控制自动缩放.HTTP 函数触发异步函数等.同时,异步运行时定义也被重构了.核心 A ...
- Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算
作者 |:西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立运行的应用程序. 在云 ...
- Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算
简介:如何以 Serverless 的方式运行 Spring Boot 应用? 作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Sp ...
- Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算
作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立运行的应用程序. ...
最新文章
- 洛谷 P4706 取石子 解题报告
- linux配置jdk环境
- Spring4.1新特性——Spring MVC增强
- 用interrupt()中断Java线程
- cygwin swoole_swoole入门--------基础概念
- dataset的去重计数 g2_向工程渣土运输车辆计数 漏洞损失说“不”
- X4-技术与工作报告
- SqlAlchemy ORM
- Atiitt 自我学习法流程 1.预先阶段 1.1.目标搜索 资料搜索 1.2. 1.3.通过关联关键词 抽象 等领域 拓展拓宽体系树 1.4. 2.分析整理阶段 2.1.找出重点 压缩要学会
- Qt数据库应用3-数据打印到pdf
- 大数据分析案例:电力窃漏电用户自动识别
- Mac好用的截图工具:Snipaste
- 深入理解Arduino下的ESP8266_Non-OS_SDK API① Non-OS SDK
- 分别输入5名同学的三门课程成绩,用函数实现每名学生的平均分。
- 农业遥感技术科研成果汇总
- AI具备创造力入选Science年度十大科学突破
- 世界互联网大会“互联网之光”博览会-蚂蚁金服展台掠影
- 人工智能常用评估指标
- 个人理财太平亿康学生怎样才能做好投资理财工作
- 周杰伦新歌《彩虹》mp3 在线试听|下载|歌词 在线播放,周杰伦新歌《彩虹》MV
热门文章
- 动态调试android, ddmsida
- 【PHP】网络相关封装的函数
- 8、使用元数据(描述数据属性的信息)分析数据库
- 基础贪心算法(HDU2037今年暑假不AC)
- 1110 Complete Binary Tree (25 分)【难度: 一般 / 知识点: 判断完全二叉树】
- 1064 Complete Binary Search Tree (30 分)【难度: 一般 / 知识点: 完全二叉搜索树】
- PPT怎么在剪映_剪映怎么剪辑音乐?添加、分割、导入音乐,图文详解!
- java transaction cn,JAVA中如何用TRANSACTION来对数据库进行
- 微信公众号支付开发全过程(java版)
- Java设计模式-Proxy代理模式