上云无忧 > 文档中心 > Java Springboot Web框架迁移到百度智能云函数计算 CFC
函数计算CFC
Java Springboot Web框架迁移到百度智能云函数计算 CFC

文档简介:
本文将介绍如何将Spring Boot应该迁移部署到函数计算。 环境准备: 安装OpenJDK 1.8.0及以上运行环境 迁移应用: 如果您还没有开通CFC服务,请参考函数计算开通;如果您已开通,则可以跳过该步骤。 创建一个spring boot项目。 引入百度云函数计算SDK。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本文将介绍如何将Spring Boot应该迁移部署到函数计算。

环境准备

安装OpenJDK 1.8.0及以上运行环境

迁移应用

如果您还没有开通CFC服务,请参考函数计算开通;如果您已开通,则可以跳过该步骤。

  1. 创建一个spring boot项目
  2. 引入百度云函数计算SDK

在项目pom.xml中添加百度云原生函数计算CFC(2.1.0及以上版本)的依赖。

com.baidu.cfccfc-java-core2.1.1
  1. 代码改造

在项目的根目录src/main/java的任意目录下新增一个执行方法入口,例如在src/main/java/tacos的目录下创建MyHandler类用于实现AbstractSpringBootHandler

package tacos;
 
import com.baidubce.cfc.core.AbstractSpringBootHandler;
public class MyHandler extends AbstractSpringBootHandler{
 
    @Override
    public void startApp() {
        // 修改为springboot项目的入口主函数,例如: 入口为TacosCloudlication class下的main函数
        TacosCloudApplication.main(new String[]{""});
    }
}

添加mainClass类,如APP类(需要修改pom.xml设置为启动类)

package tacos;
 
import com.baidubce.cfc.core.CfcClient;
 
public class App {
    public static void main(String[] args){
        CfcClient.main();
    }
}
  1. maven编译并打包函数代码

如果完成上述对SpringBoot服务的改造工作,还需要对项目的打包构建工作进行一定的修改(主要是对CFC函数代码包的一些限制),主要限制如下:

  • 打包上传函数的根目录只有一个mainClass对应的jar包
  • mainClass对应的class应为启动CfcClient对应的class
  • 打包上传的函数目录中依赖完整,所有依赖jar包都在函数压缩包中
  • 在函数中配置的handler类与函数中实现的handler类一致

增加plugin配置

在 pom.xml文件中添加 maven-assembly-plugin,构建一个可执行jar包。添加maven-dependency-plugin,将jar包所依赖的其他jar包拷贝至${project.build.directory}/lib目录。 在 project 标签下增加如下的两项:

org.apache.maven.pluginsmaven-dependency-plugin3.1.1copy-dependenciespackagecopy-dependencies$
{project.build.directory}/libfalsefalsetrueorg.apache.maven.pluginsmaven-jar-plugin3.0.2truelib/tacos.App

发布打包

# 打包
$ mvn clean package
# zip压缩
$ cd target && zip -r springboot.zip xxx-xxx.0.0.1-SNAPSHOT.jar lib/
  1. 配置函数
  • 创建java函数,由于springboot启动时间较长,创建函数时,函数超时时间建议设置长点

  • 选择"上传.zip文件",将上一步中压缩生成的zip文件上传至百度云函数
  • 处理程序中填写函数入口类名称,本例为tacos.MyHandler

  1. 创建http触发器

  1. 验证

代码示例

本章节中的代码简单示例,请点击下载简单示例。

相似文档
  • 协议生效时间:2021年05月18日。 本服务等级协议(Service Level Agreement,以下简称 "SLA")规定了百度智能云向客户提供的函数计算服务CFC(简称"CFC")的服务可用性等级指标及赔偿方案。
  • 百度智能云容器镜像服务(Cloud Container Registry,简称CCR)是面向容器镜像、Helm Chart等符合OCI规范的云原生制品安全托管以及高效分发平台。CCR支持在多个地域创建独享托管服务,具备多种安全保障;支持同步容器镜像等云原生制品,与容器引擎CCE等服务无缝集成,助力企业提升云原生容器应用交付效率。
  • 百度智能云容器镜像服务CCR企业版目前正在火热公测中,若您对企业版产品感兴趣或者有相关需求,您可以申请公测使用。 公测期间,每个账户每个地域下默认只能创建一个实例,若您需要提升配额,请提交工单联系我们。
  • 命名空间: 用于存储管理镜像并进行用户授权的逻辑概念,命名空间由用户自主创建,分为私有和公有两种类型。命名空间的类型决定了其中的镜像和Helm Chart能否被未经授权的用户拉取。
  • 就近上传下载: 存储在CCR中的容器镜像,将通过百度智能云的内部网络,自动同步并存储在全国多个数据中心。当您向仓库中推送和拉取镜像时,CCR将根据提交请求的服务器网络位置,选择延时最低的数据中心就近上传和下载镜像。因此您可以在全国任意地域使用一致的镜像地址进行推送和拉取,同时获得更块的下载速度和更低的请求延时。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部