浅出:让 React 插上 Serverless 翅膀,飞向云端

简介: Midway FaaS 不仅仅在函数侧提供了能力支持,也在前端部分整合了体验。经过我们一段时间的实践,发现前端代码 + FaaS 代码真是天然的绝配,比传统应用轻量许多,同时, 由于函数本身的特性,也更容易和前端配合起来。Midway FaaS已经接入阿里云云开发平台,可以在上面简单的发发发,一个 Web 栈应用就搭建完成了,同时还提供了百万代金券补贴。

之前不少同学一直说,什么时候,能有一个结合前端的示例,这就来了。

Midway FaaS 不仅仅在函数侧提供了能力支持,也在前端部分整合了体验。经过我们一段时间的实践,发现前端代码 + FaaS 代码真是天然的绝配,比传统应用轻量许多,同时, 由于函数本身的特性,也更容易和前端配合起来。

一体化来了

首先,我们介绍一下一体化的概念,什么是一体化呢?我们所描述的一体化,就是前后端代码,在同一个项目中开发,调试,测试和部署,让整个流程在统一的开发形态中完成。

那么,为什么要做 Serverless 体系的一体化呢?我们这里给出了一些答案。

前后端一体,开发/调试/发布更加简单了
基于函数的高密度部署更加节省机器资源
不需要投入很多精力搞运维

这一回,我们的一体化拿 React 举例。

开始浅出

首先,安装 Midway FaaS 的 @midwayjs/faas-cli 工具。

$ npm i @midwayjs/faas-cli -g
我们将脚手架和示例都加到了 f create 命令中,选择 faas-react 示例。(新菜单,好不好看,快夸我。)

image.png

然后,敲回车,数个 1, 2, 3 ,示例就 down 下来啦。

本地开发和调试

整个示例代码是从 create-react-app 创建而来,加上了我们 midway faas 特有的一体化开发结构,树状结构如下。

➜ react_xxx tree
.
├── README.md
├── f.yml # 函数配置文件
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
├── src # react 源码目录
│ ├── App.test.tsx
│ ├── App.tsx
│ ├── Detail.tsx
│ ├── Home.tsx
│ ├── Layout.tsx
│ ├── List.tsx
│ ├── apis # 函数代码目录
│ │ ├── config
│ │ │ └── config.default.ts
│ │ ├── configuration.ts
│ │ └── index.ts
│ ├── common.css
│ ├── home.css
│ ├── index.css
│ ├── index.tsx
│ ├── layout.css
│ ├── logo.svg
│ ├── react-app-env.d.ts
│ ├── serviceWorker.ts
│ ├── setupProxy.js # 自定义 webpack dev server
│ └── setupTests.ts
└── tsconfig.json # ts 编译配置

4 directories, 29 files

整个结构以前端视角为主,函数的代码作为 api 放在了 src/apis 目录中。(一体化的完整思考我们将在后面的系列文章介绍)

然后 npm install 等步骤我们就略过不细讲了。

我们在本地可以通过 npm run dev 来启动看一下效果,启动时会自动发一个请求到函数端拿数据,渲染到页面,访问 http://127.0.0.1:8080/ ,整体效果如下。

image.png

切换顶部的 Tab 区域,我们设计了三个 HTTP 接口,启动后会分别请求本地的三个函数。

在 midway faas 体系中,函数是通过 Class 的方法来承载。

通过 midway faas 的包装,你可以简单的返回 html,文件,设置响应头,乃至配置 koa 中间件。你可以把逻辑进行组合复用,也可以对整个流程进行重组;由于有生命周期的存在,你也可以在函数中使用初始化连接,加载依赖;也可以按环境加载熟悉的配置文件,注入到任意逻辑中。

部署

这个示例,在部署到云平台前,需要提前进行构建,执行 npm run build ,前端代码将会构建到 build 目录,函数端已经配置了该目录地址,会自动配置和加载。

使用 f deploy 命令,默认会发布到阿里云,由于 midway faas 也提供了国内多云平台的支持,同时也可以自行修改到其他平台,绑定域名之后即可访问。

小结

恭喜,自此,你获得了生产力提升技能,快来尝试一下吧。

此开发示例已经提前接入了阿里云云开发平台,可以在上面简单的发发发,一个 Web 栈应用就搭建完成了,同时还提供了百万代金券补贴,很诱人!!

image.png

转自知乎
https://zhuanlan.zhihu.com/p/142343898

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
Serverless Python
借助 serverless 将 MCP 服务部署到云端
本文介绍了如何将 MCP 服务通过 SSE 协议部署到云端,避免本地下载和启动的麻烦。首先,使用 Python 实现了一个基于 FastMCP 的网络搜索工具,并通过设置 `transport='sse'` 启用 SSE 协议。接着,编写客户端代码测试服务功能,确保其正常运行。随后,利用阿里云函数计算服务(FC 3.0)以 Serverless 方式部署该服务,包括创建函数、配置环境变量、添加依赖层以及部署代码。最后,提供了客户端测试方法和日志排查技巧,并展示了如何在不同工具(如 Cherry-Studio、Cline 和 Cursor)中配置云端 MCP 服务。
1718 11
借助 serverless 将 MCP 服务部署到云端
|
消息中间件 存储 弹性计算
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期方案教学》由阿里云技术团队周博宇主讲,聚焦如何使用函数计算突破资源瓶颈,高效处理多媒体文件。方案涵盖六大要点:寻找云需求解决方案、选择函数计算的原因、对比不同文件处理方式、实现多媒体文件处理、应用场景广泛性及优惠购买推荐。通过将文件处理从主应用拆分,利用函数计算的按需扩展和自动弹性特性,确保核心业务稳定,并大幅降低成本。适用于图片、视频处理等多种场景。
206 1
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
|
弹性计算 监控 关系型数据库
云端问道13期实操教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期实操教学》介绍了使用函数计算实现多媒体文件处理的解决方案,分为五部分:方案概览、部署准备、一键部署、完成及清理和主流应用场景。通过创建VPC、ECS、RDS等资源,演示了如何利用函数计算处理PPT加水印并转PDF,解决了资源瓶颈问题。最后讲解了函数计算在部署外部应用、文件处理和音视频处理中的优势。
216 2
|
人工智能 运维 Serverless
云端问道8期方案教学-基于Serverless计算快速构建AI应用开发
本文介绍了基于Serverless计算快速构建AI应用开发的技术和实践。内容涵盖四个方面:1) Serverless技术价值,包括其发展趋势和优势;2) Serverless函数计算与AI的结合,探讨AIGC应用场景及企业面临的挑战;3) Serverless函数计算AIGC应用方案,提供一键部署、模型托管等功能;4) 业务初期如何低门槛使用,介绍新用户免费额度和优惠活动。通过这些内容,帮助企业和开发者更高效地利用Serverless架构进行AI应用开发。
356 1
|
监控 Serverless 测试技术
云端问道9期方案教学-省心省钱的云上Serverless高可用架构
本文介绍了省心省钱的云上Serverless高可用架构,主要分为两个部分:1. Serverless的发展历程、特点及高可用架构;2. SAE(Serverless Application Engine)产品介绍。Serverless作为一种云计算模式,让用户无需管理底层基础设施,自动弹性扩展资源,按需付费,极大提高了资源利用率和业务灵活性。SAE作为Serverless计算服务,提供了简便的应用部署、运维自动化、丰富的弹性策略和可观测性等功能,帮助企业降低运营成本、提升研发效率。通过极氪汽车、南瓜电影等客户案例展示了SAE在实际应用中的优势。
252 0
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
292 10
|
自然语言处理 Serverless Docker
量化交易大揭秘:如何将TA-Lib神兵利器部署于云端函数计算,让策略飞升!
【8月更文挑战第8天】在量化交易中,TA-Lib作为技术分析库备受青睐,支持多语言包括Python。本教程指导如何将其移植至函数计算平台,实现云端交易策略。首先安装Python与TA-Lib;接着选择云服务商并创建实例。确认TA-Lib与平台Python版本兼容,必要时构建自定义运行时。使用`pip`安装TA-Lib并打包依赖。编写函数计算代码示例,如计算移动平均线。部署代码与依赖至平台,定制Dockerfile以支持自定义运行时。最后,通过平台测试功能验证功能正确性。完成移植后,即可享受Serverless架构的自动扩展与成本效益优势。
688 4
|
Cloud Native Java Serverless
一键上天!如何将Spring PetClinic瞬间迁移到云端函数计算平台
【8月更文挑战第8天】在现代云原生开发中,将Spring应用迁移到Serverless环境正成为趋势。本文通过对比传统部署与函数计算,指导如何快速部署Spring PetClinic应用。传统部署需手动配置服务器和中间件,而函数计算则免除了这些步骤,仅需上传代码。首先,准备好Spring PetClinic源码或jar包;接着选择函数计算平台,本文以阿里云为例;随后对应用进行适配,并使用Maven构建部署包;登录阿里云控制台上传jar包并配置HTTP触发器;最后测试应用确保正常运行。
203 3
|
弹性计算 运维 监控
函数计算产品使用问题之如何在阿里云端stable-diffusion训练lora
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
345 1
|
运维 Serverless 网络安全
Serverless 应用引擎产品使用合集之能否用一个顶层函数,在云端动态的增加函数脚本或删除脚本
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

相关产品

  • 函数计算