本文将介绍 Serverless 平台下如何新建 Lambda 函数,在文章过程中详细阐述了 Serverless的概念和组成部分,以及如何使用 Serverless CLI 在本地开发和测试 Lambda 函数,以及部署 Lambda 函数到云端。
什么是 Serverless
Serverless 最初被认为是一种基于 Function-as-a-Service(FaaS)的云计算模型,随着时间的推移,逐渐演变为一种更为广义的概念:不再需要管理和维护服务器或虚拟机等底层基础设施,而是专注于开发业务逻辑和功能,以事件驱动、自动缩放、微服务化的方式,实现真正的无服务器架构。
Serverless 架构的核心是事件-响应模式(Event-driven) ,它基于事件的产生调用对应的函数(Function) ,分布式的运行在云端,能够根据实际负载自动伸缩,从而具备高可用、弹性伸缩、低成本的优势,完成云服务中最后的一公里。
在 Serverless 架构中,AWS Lambda 是最具代表性的一个服务,但除了 AWS Lambda 之外,还有 Google Cloud Functions、Azure Functions、Alibaba Cloud Function Compute 等。Serverless 架构不仅仅限于 Amazon Web Services(AWS)。
Serverless 组成部分
在 Serverless 架构中,有以下几个核心部分:
- Functions:函数和事件处理逻辑
- Triggers:触发函数的事件来源
- Services:函数的容器和配置
- APIs:定义 API 的 HTTP 端点
- Auth:定义访问 API 的权限
- Add-ons:扩展实现其它功能
它们的关系如下图所示:
在使用 Serverless 进行开发时,不用再考虑底层基础设施(例如云服务器),而是专注于编写 Lambda 函数,配置函数的触发器、运行环境、内存大小等,服务器的运营和维护由云服务提供商来处理。
Serverless CLI
Serverless CLI 是 Serverless Framework 的命令行工具,可以让开发者本地开发和调试 Lambda 函数,并将 Lambda 函数部署到云端。
安装 Serverless CLI
- 安装 Node.js
- 在终端输入以下命令安装 Serverless CLI:
--- ------- -- ----------
- 安装完毕后,可以通过以下命令检验 CLI 是否安装成功:
--- --
创建 Serverless 项目
- 在命令行终端中输入以下命令:
---------- ------ ---------- ---------- ------ -----------
这将使用 'aws-nodejs' 模板创建一个新的 Serverless 项目,并将其保存到名称为 'lambda-demo' 的目录中。
- 进入项目目录:
-- -----------
- 使用以下命令部署 Lambda 函数到云端:
---------- ------
本地开发和测试
- 在项目目录中打开
handler.js
文件,编辑该文件以创建 Lambda 函数。
-------------------- - ----- ------- -- - ----- -------- - - ----------- ---- ----- ---------------------- --------- -- ------ --------- --
- 使用以下命令在本地启动 Lambda 函数:
---------- ------ ----- -- -----
- 该命令调用本地函数并返回输出。输出应如下所示:
- ------------- ---- ------- --------- --------- -
部署 Lambda 函数到云端
使用以下命令部署 Lambda 函数到云端:
---------- ------
将在 AWS Lambda 上创建一个新的函数,并将其代码部署到 Lambda 函数。如果 Lambda 函数已经创建,可以使用以下命令进行更新:
---------- ------
示例代码
下面是一个使用 Serverless 构建的 Lambda 函数示例代码:
-------------------- - ----- ------- -- - ----- -------- - - ----------- ---- ----- ---------------------- --------- -- ------ --------- --
在本示例中,hello
Lambda 函数将返回一个 HTTP 200 响应和 "Hello, World!"。这是一个非常基础的 Lambda 函数,但实际项目中,可能会涉及查询数据库、处理文件上传和下载、发送邮件等功能,完全取决于业务需求。
总结
本文介绍了 Serverless 技术的组成部分、如何使用 Serverless CLI 进行本地开发和测试 Lambda 函数,以及如何部署 Lambda 函数到云端。开发者可以通过 Serverless 构建高可用、弹性伸缩、低成本的云应用系统。
本文仅作为入门指南,更深入的 Serverless 技术介绍将在后续的文章中更新。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6454a62c968c7c53b0875f07