前言
Serverless 架构是一种被越来越多开发者所青睐的云计算模型,在前端领域也越来越被广泛应用。本文将详细讨论 Serverless 架构的搭建流程,重点包括如何切换至 Serverless 架构、函数编写、本地调试和部署等方面内容。
什么是 Serverless 架构?
Serverless 架构是一种无服务器的云计算模型,它将运维工作从开发者身上转移到云服务提供商那里。在 Serverless 架构中,开发者不再需要在开发过程中考虑服务器的维护问题,而是将重心转向应用业务本身。
Serverless 架构的优势很明显:
- 在设计和运维方面免受服务器的困扰。
- 动态、高效的处理是 Serverless 的核心特性。当用户请求应用程序时,Serverless 平台会立即调用相应的代码,而当用户请求结束时,代码也会立即停止执行,从而降低了成本。
- Serverless 架构是一种完全弹性化的模型,能够随时扩展或缩减资源,无需关注服务器的物理架构。
- 在可伸缩性和成本方面都非常有优势。
如何进入 Serverless 架构?
要进入 Serverless 架构需要具备以下流程和准备工作:
步骤一:选择适合的 Serverless 平台
目前,云厂商针对 Serverless 架构的支持较为完善,可以选择的平台有阿里云函数计算、腾讯云 Cloud Function、华为云 FunctionGraph、亚马逊 AWS Lambda 等等。
步骤二:准备开发工具
需要选择适用于 Serverless 架构开发的工具集,比如 Visual Studio Code。在编写代码时,需要使用 Node.js 等脚本语言。
步骤三:编写函数
Serverless 架构的核心就是函数(Function),所以需要编写与这个函数相关的业务代码。这个函数通常是一段优化过的代码,能够单独完成特定目的,比如处理数据、生成报告、处理交互等等。
步骤四:本地测试
在编写函数后,需要进行本地测试,确认函数相应的事件和调用关系是否符合要求。可以使用 Serverless 模拟器或框架本地测试。
步骤五:部署函数
完成测试后,将函数上传到云平台,这通常是一个简单的操作,可以使用该平台所提供的命令行界面或客户端实现。
步骤六:配置触发器
部署了函数之后,还需要将函数与其它云服务集成。需要配置触发器来触发函数的执行。目前的云服务支持的触发器类型包括 HTTP 请求、消息队列、对象存储等等。
实例应用
下面我们以阿里云函数计算为例,让大家更好的理解 Serverless 架构搭建流程。
步骤一: 注册和开通阿里云函数计算服务
访问阿里云函数计算官网进行注册和购买服务。
步骤二: 下载安装Funcraft
Funcraft 是一个面向阿里云函数计算(函数计算)场景的客户端工具,可用于支持本地开发、调试和部署函数计算代码。开发人员可以在本地开发自己的函数计算代码,并将代码直接部署到函数计算平台,避免本地代码和远程代码不一致的问题。
步骤三:编写函数
-- -------------------- ---- ------- ---- -------- ----- - ----- - - -------------- ---------------------- - ----- ------- -- - ----------------------------------- ----- ---- - -------------------------------------------- ----- ------- - ------- ---------- ----- ------- - --------------- ------ - ----------- ---- ----- ---------------- -------- -------- --- -- --
步骤四:本地测试
使用 fucraft local invoke
命令可以在本地发起调用并测试函数。
$ fun local invoke local invoke logger function ... [event] Hello world! [INFO ] 2022-02-22T16:49:05.117Z 19ab652f-e6db-4cee-a641-6eb91dddac7a TaskKeys:Func:FunctionCode Logs:Hello, world! [INFO ] 2022-02-22T16:49:05.119Z 19ab652f-e6db-4cee-a641-6eb91dddac7a TaskKeys:Func:FunctionCode Logs:null [INFO ] 2022-02-22T16:49:05.119Z 19ab652f-e6db-4cee-a641-6eb91dddac7a TaskKeys:Func:FunctionCode LogsWithTime:null [INFO ] 2022-02-22T16:49:05.119Z 19ab652f-e6db-4cee-a641-6eb91dddac7a TaskKeys:Func:FunctionCode StatusCode:200 [INFO ] 2022-02-22T16:49:05.121Z 19ab652f-e6db-4cee-a641-6eb91dddac7a TaskKeys:Func HandlerName:index.handler
可以看到,我们成功地执行了函数并得到了对应的输出。
步骤五:部署函数
使用 fun deploy
命令可以直接将代码上传到阿里云并创建应用、函数、API 等资源。
-- -------------------- ---- ------- - --- ------ ----- --------- ------------ ----- ------- ----------- ----- ---------- ------------ ----- ------------ ------------ ----- -------- -- ------- --- ------- ------------- -- -- ----------- ------- --- -------- ------ -- -- ----------- ------- --- --------- -------- ------ ------- ------- -------- ------ ---- ---- -------- ------ ------ ------- ------- ------------- ------ -------
步骤六:配置触发器
使用 fun deploy
部署函数时,可以自动创建之前执行函数的操作。
-- -------------------- ---- ------- ------- --- ------- ------------- -- -- ----------- ------- --- -------- ------ -- -- ----------- ------- --- --------- -------- ------ ------- ------- -------- ------ ---- ---- -------- ------ ------ ------- ------- --- --- -------- -- -- ----------- ---- --------------------------------------------------------------------------------- --- --------------------------------------------------------------------------------- --- -------- ------ ------- ------- ------------- ------ -------
结语
希望本文能为多数前端开发者切入 Serverless 架构领域提供指导与参考。Serverless 的兴起标志着开发者将更加关注业务逻辑而不是服务器运维问题,我们也希望这篇文章可以帮助有需要的同学更加轻松地切换至 Serverless 架构。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6782288c935627c900fa1d84