tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表
文档云函数实践教程业务开发相关实践SpringBoot + SCF 实现待办应用

SpringBoot + SCF 实现待办应用

PDF
聚焦模式
字号
最后更新时间: 2024-12-02 21:04:04

操作场景

Spring Boot 是由 Pivotal 团队提供的框架,用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
本文将介绍如何通过 SCF 使用 SpringBoot 搭建一个待办应用。SCF 提供事件触发的 事件函数 和 HTTP 请求触发的 Web 函数 两种函数类型,在 SpringBoot 场景下推荐使用 Web 函数。

前提条件

请参考 云函数 JAVA 开发指南 准备开发环境和工具。

操作步骤

使用 Web 函数

SCF 提供模板函数,按照如下流程操作可使用 Web 函数快速创建一个待办应用并体验待办事项的增删改查功能。
注意:
本模板仅作为示例提供,待办事项数据实际存储在实例缓存中,不作为持久化存储。

创建函数

2. 函数服务页中单击新建
3. 新建页中,选择模板创建,并搜索关键词 springbootwebfunc。在查询结果中选择 SpringBoot 待办应用并单击下一步。如下图所示:


4. 保持默认配置,单击完成,完成函数创建。

测试函数

函数代码页签,按照如下流程操作,通过测试模板发起模拟请求体验待办应用增删改查功能:
查询待办列表: 请求方式选择 GET, path 填写 /todos,单击测试后,在响应 Body 中可以查看到当前的待办事项。如下图所示:



增加待办事项: 请求方式选择 POST, path 填写 /todos,body 填写 {"key":"3","content":"Third todo","done": false},单击测试增加一个待办事项。如下图所示:



删除待办事项: 请求方式选择 DELETE,以删除 key 为 2 的待办事项为例,path 填写 /todos/2,单击测试。如下图所示:



修改待办事项: 请求方式选择 PUT,以将 key 为 3 的待办事项由未完成改为完成为例,path 填写 /todos/3,body 填写 {"key":"3","content":"Third todo","done": true},单击测试。如下图所示:




代码示例

创建函数 步骤中,您也可以根据业务需求修改函数模板。在模板选择页面,单击模板卡片右上角的查看详情,在展开的页面中单击下载模板函数即可获取模板函数源码。
原生 SpringBoot 项目迁移到 Web 函数需要执行如下步骤:
确保 Spring 监听端口为 9000(SCF Web 函数指定监听端口)。

编译 JAR 包。 下载代码之后,在目录 Webfunc-Java8-SpringBoot 下运行编译命令:
gradle build
编译完成后可在 build/libs 目录下获取到打包完成的 jar 包,选择后缀为 -all 的 jar 包。
准备一个可执行文件 scf_bootstrap 用于启动 Web Server,文件内容可参考下文:
#!/bin/bash
/var/lang/java8/bin/java -Dserver.port=9000 -jar scf-springboot-java8-0.0.2-SNAPSHOT-all.jar
注意:
在 scf_bootstrap 文件所在目录执行 chmod 755 scf_bootstrap 来保证 scf_bootstrap 文件具有可执行权限。
scf_bootstrap 文件与生成的 jar 包一起打包为 zip 部署到云函数。部署函数步骤如下:
1.1 登录 Serverless 控制台
1.2 函数服务页中单击新建
1.3 新建页中,选择从头开始。参考以下内容进行配置: 函数类型:web 函数 运行环境:Java8 提交方法:本地上传 zip 包 函数代码:单击上传选择打包好的 zip 文件
1.4 其他保持默认配置,单击完成即可完成函数创建。如下图所示:



使用事件函数

SCF 提供模板函数,按照如下流程操作可使用事件函数快速创建一个待办应用并体验待办事项的增删改查功能。
注意:
本模板仅作为示例提供,待办事项数据实际存储在实例缓存中,不作为持久化存储。

创建函数

2. 函数服务页中单击新建
3. 新建页中,选择模板创建,并搜索关键词 springboot。在查询结果中选择 SpringBoot 并单击下一步



4. 保持默认配置,单击完成,完成函数创建。

创建触发器

注意:
如果在创建函数过程中已经创建好 API 网关触发器,核对已有触发器与下文配置一致即可。
1. 函数创建完成后,在触发管理页签,单击创建触发器



2. 在弹窗中进行触发器配置。参考以下内容进行选择,其余保持默认配置,单击提交
触发方式:API 网关触发
集成响应:启用
3. 创建完成后需要调整 API 网关触发器的参数,单击 API 服务名跳转到 API 网关控制台进行下一步操作。如下图所示:



4. 在 API 网关控制台找到函数使用的 API,单击编辑。如下图所示:



5. 修改前端配置页面中的路径为 /todos,单击立即完成,并按照引导发布服务。如下图所示:



测试函数

函数代码页签,按照如下流程操作,通过 Api Gateway 事件模板发起模拟请求体验待办应用增删改查功能:
查询待办列表: 请求方式选择 GET, path 填写 /todos,单击测试后,在响应 Body 中可以查看到当前的待办事项。如下图所示:



增加待办事项: 请求方式选择 POST, path 填写 /todos,headers 填写 Content-Type: application/json,body 填写 {"key":"3","content":"Third todo","done": false},单击测试增加一个待办事项。如下图所示:


删除待办事项: 请求方式选择 DELETE,以删除 key 为 2 的待办事项为例,path 填写 /todos/2,单击测试。如下图所示:


修改待办事项: 请求方式选择 PUT,以将 key 为 3 的待办事项由未完成改为完成为例,path 填写 /todos/2, body 填写 {"key":"2","content":"Third todo","done": true}`,单击测试。如下图所示:




代码示例

创建函数 步骤中,您也可以根据业务需求修改函数模板。在模板选择页面,单击模板卡片右上角的查看详情,在展开的页面中单击单击下载模板函数即可获取模板函数源码。
可参考以下流程操作:
增加一个 ScfHandler 类,ScfHandler 类主要用于接收事件触发,并转发消息给 Spring 服务,函数接收到 Spring 服务的返回后再把结果返回给调用方。ScfHandler 类增加后项目结构如下:
.
├── src
| └── main
| | ├── java
| | | └── com.tencent.scfspringbootjava8
| | | | ├── controller
| | | | ├── model
| | | | └── repository
| | | | | ├── ScfHandler.java
| | | | | └── ScfSpringbootJava8Application.java
| | └── resources
编译 JAR 包 下载代码之后,在根目录下运行编译命令:
gradle build
编译完成后可在 build/libs 目录下获取到打包完成的 jar 包,选择后缀为 -all 的 jar 包。
将编译生成的 jar 包部署到云函数。部署函数步骤如下:
1.1 登录 Serverless 控制台
1.2 函数服务页中单击新建
1.3 新建页中,选择从头开始。参考以下内容进行配置: 函数类型:事件函数 运行环境:Java8 提交方法:本地上传 zip 包 执行方法:com.tencent.scfspringbootjava8.ScfHandler:: mainHandler 函数代码:单击上传选择打包好的 zip 文件
1.4 其他保持默认配置,单击完成即可完成函数创建。如下图所示:




帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈