Module 03 · Serverless Overview
The Serverless FrameworkServerless 框架简介
Serverless Framework 概述
The Serverless Framework 是一个使用 Node.js 编写的免费开源 Web 框架。
- 初始目的: 最初设计用于安全快速地配置 Amazon Web Services (AWS) 的 Lambda Functions、Events(事件)和基础设施资源。
- 支持范围: 但它并不限于 AWS,其他支持的提供商包括:
- Microsoft Azure
- Google Cloud Platform
- Apache OpenWhisk
- 特性: Serverless Framework 是一个命令行界面 (CLI) 工具,提供了结构、自动化和开箱即用的最佳实践。
核心组件
Serverless Framework 允许您专注于构建复杂的事件驱动、无服务器架构,该架构由以下几个核心组件组成 :
- 函数(Function):
- 仅仅是代码,部署在云端,通常用于执行单个任务。
- 每个函数都是一个独立的执行和部署单元,类似于微服务。
- 示例: 将用户保存到数据库,或在指定时间执行一个作业。
- 事件(Event):
- 函数由事件触发,事件来自其他资源。
- 示例: API Gateway URL 上的 HTTP 请求,或 S3 存储桶中上传了新文件。
- 资源(Resource):
- 您的函数使用的基础设施组件。
- 示例: 云提供商作为服务提供的数据库,或用于存储文件的 S3 存储桶。
- 服务(Service):
- 该框架的组织单位。
- 您可以将其视为一个项目文件,尽管一个应用程序可以有多个服务。
Serverless.yml 配置与部署
服务通过 serverless.yml 文件进行配置,您在该文件中定义要部署的函数、事件和资源。
- 控制:
serverless.yml文件控制您的服务中的所有内容。 - 部署: 使用 Framework CLI 进行部署时,配置文件中的所有内容会一次性部署。
- 结构:
serverless.yml中有专门的段落用于指定functions、events和resources。
示例:创建和测试 Serverless 函数
- 安装 CLI: 首先,您需要安装 Serverless CLI(可以使用
npm install -g serverless全局安装)。 - 创建服务: 运行
serverless命令来创建您的第一个 AWS HTTP API(例如使用 Python)。
- 该命令将引导您完成向导。

- 部署与 URL: 部署完成后,CLI 将提供一个 URL。
- 测试: 在浏览器中打开该 URL,您将看到输出。
- 修改与重部署: 修改函数代码以返回 "Hello World",然后简单地重新部署并再次测试。
总结
- The Serverless Framework 是一个使用 Node.js 编写的免费开源 Web 框架。
- 函数由事件触发。
- 服务通过
serverless.yml文件进行配置。 serverless.yml文件中有用于指定 functions、events 和 resources 的特定部分。