简介

首先介绍下在本文出现的几个比较重要的概念:

函数计算(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 函数的自定义域名,并自动配置好这些服务,以达到迅速上线开箱即用的效果。

注意:

  1. 需要提供一个域名(支持二级域名),如果部署在国内 Region 该域名需要在阿里云备案,然后把域名的 CNAME 记录指向 12345.cn-shanghai.fc.aliyuncs.com,其中 12345 换成您的 AccountID,如果是在国外 Region 可以免去备案环节,请查看更多参考
  2. 模板创建的 RDS-MySQL 云服务选用了最便宜的按量付费实例,费用大约为:¥0.236/小时,使用前需要确保账户有 100 元的余额,并且试用完成以后建议通过 ROS 控制台删除该应用,以免产生超出预期的费用。

快速开始

下面我们借助于函数计算的应用中心,快速地将 Spring PetClinic 快速部署到函数计算平台。

  1. 打开函数计算 [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)。如果您尚未开通函数计算服务可能需要先,开通服务是免费的,另外函数计算有每月免费额度,试用服务不会产生费用。
  2. 滚动到 [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)的最底部,点击“立即部署”按钮。
  3. 填写应用名称和域名,其中域名需要先去设定 DNS 的 CNAME 记录,然后点击“部署”按钮。
  4. 稍等片刻,等到部署成功以后,拷贝 URL 网址。
  5. 在浏览器中打开上面拷贝的网址

工作原理

本示例中,我们打算使用函数计算的 [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 用户安装请参考:

  1. 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

参考链接

  1. [Serverless 实战 —— 移植 spring-petclinic 到函数计算](https://statistics.functioncompute.com/?title=快速部署 Spring PetClinic 到函数计算平台&author=倚贤&src=article&url=https://yq.aliyun.com/articles/724662)
  2. Funcraft
  3. Aliyun Serverless VSCode Extension

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

快速部署 Spring PetClinic 到函数计算平台相关推荐

  1. 使用 OpenAI、阿里云函数计算平台和 PyQt5 创造智能图片生成器

    使用 OpenAI.阿里云函数计算平台和 PyQt5 创造智能图片生成器 0. 效果演示 1. 引言 随着人工智能技术的不断发展,越来越多的应用开始融入我们的生活.在这篇博客中,我将介绍如何利用 Op ...

  2. 迁移 Spring Boot 到函数计算

    首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准备计 ...

  3. 如何迁移 Spring Boot 到函数计算

    作者 | 田小单 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上 ...

  4. 如何使用 Serverless Devs 部署静态网站到函数计算(上)

    简介:部署个静态网站到函数计算~ 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站. FC 弹性实例自带的500 Mb 存储空间对 ...

  5. 好嗨呦 之 快速部署 Spring Boot 项目

    LZ-Says:2019 年第一场雨,淋成 ?... 前言 后台接口的逻辑就是强大呢. 一个看似很简单的功能,后台接口要处理很多东西,感觉好爽. 接口搞完俩个,虽说不是那么的尽人意,好歹,一天比一天熟 ...

  6. 开源函数计算平台 OpenFunction 保姆级入门教程

    OpenFunction 0.6.0 上周已经正式发布了,带来了许多值得注意的功能,包括函数插件.函数的分布式跟踪.控制自动缩放.HTTP 函数触发异步函数等.同时,异步运行时定义也被重构了.核心 A ...

  7. Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算

    作者 |:西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立运行的应用程序. 在云 ...

  8. Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算

    简介:如何以 Serverless 的方式运行 Spring Boot 应用? 作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Sp ...

  9. Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算

    作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立运行的应用程序. ​ ...

最新文章

  1. 洛谷 P4706 取石子 解题报告
  2. linux配置jdk环境
  3. Spring4.1新特性——Spring MVC增强
  4. 用interrupt()中断Java线程
  5. cygwin swoole_swoole入门--------基础概念
  6. dataset的去重计数 g2_向工程渣土运输车辆计数 漏洞损失说“不”
  7. X4-技术与工作报告
  8. SqlAlchemy ORM
  9. Atiitt 自我学习法流程 1.预先阶段 1.1.目标搜索 资料搜索 1.2. 1.3.通过关联关键词 抽象 等领域 拓展拓宽体系树 1.4. 2.分析整理阶段 2.1.找出重点 压缩要学会
  10. Qt数据库应用3-数据打印到pdf
  11. 大数据分析案例:电力窃漏电用户自动识别
  12. Mac好用的截图工具:Snipaste
  13. 深入理解Arduino下的ESP8266_Non-OS_SDK API① Non-OS SDK
  14. 分别输入5名同学的三门课程成绩,用函数实现每名学生的平均分。
  15. 农业遥感技术科研成果汇总
  16. AI具备创造力入选Science年度十大科学突破
  17. 世界互联网大会“互联网之光”博览会-蚂蚁金服展台掠影
  18. 人工智能常用评估指标
  19. 个人理财太平亿康学生怎样才能做好投资理财工作
  20. 周杰伦新歌《彩虹》mp3 在线试听|下载|歌词 在线播放,周杰伦新歌《彩虹》MV

热门文章

  1. 动态调试android, ddmsida
  2. 【PHP】网络相关封装的函数
  3. 8、使用元数据(描述数据属性的信息)分析数据库
  4. 基础贪心算法(HDU2037今年暑假不AC)
  5. 1110 Complete Binary Tree (25 分)【难度: 一般 / 知识点: 判断完全二叉树】
  6. 1064 Complete Binary Search Tree (30 分)【难度: 一般 / 知识点: 完全二叉搜索树】
  7. PPT怎么在剪映_剪映怎么剪辑音乐?添加、分割、导入音乐,图文详解!
  8. java transaction cn,JAVA中如何用TRANSACTION来对数据库进行
  9. 微信公众号支付开发全过程(java版)
  10. Java设计模式-Proxy代理模式