以下是关于 Serverless 的基本知识点总结:
一、Serverless 核心范式
1. 核心特征矩阵
特征 | 说明 | 核心价值 |
---|
事件驱动 | 按需触发(HTTP/消息/存储事件等) | 零闲置资源消耗 |
自动伸缩 | 毫秒级扩容/缩容到零 | 极致弹性能力 |
按需计费 | 按实际执行资源+时间计费 | 成本精细化管理 |
无状态 | 临时执行环境(最大15分钟) | 轻量化快速启动 |
2. 平台对比
维度 | AWS Lambda | Vercel (Serverless) |
---|
定位 | 通用函数计算平台 | 前端优先的 Serverless 托管 |
冷启动 | 约100ms-2s | 优化后 <300ms |
部署单位 | 函数级别 | 项目级别(自动路由) |
生态整合 | 深度集成AWS服务 | Next.js/Nuxt等前端框架优先 |
计费粒度 | 按请求数+执行时间+内存 | 按构建次数+函数执行量 |
二、基础开发流程
1. AWS Lambda 快速入门
exports.handler = async (event) => {const name = event.queryStringParameters?.name || 'World';return {statusCode: 200,body: JSON.stringify({ message: `Hello ${name}!` })};
};
Resources:HelloFunction:Type: AWS::Serverless::FunctionProperties:CodeUri: ./srcHandler: handler.handlerRuntime: nodejs18.xEvents:HelloAPI:Type: Api Properties:Path: /helloMethod: GET
2. Vercel 函数示例
export default function handler(req, res) {const { name = 'World' } = req.query;res.status(200).json({ message: `Hello ${name}!` });
}
vercel --prod
三、进阶开发技巧
1. 性能优化方案
策略 | AWS Lambda 实现 | Vercel 优化 |
---|
冷启动优化 | 使用 Provisioned Concurrency | 优先使用Edge Network |
内存配置 | 调整内存(直接影响CPU分配) | 自动优化无需配置 |
持久连接 | 初始化外部连接在Handler外部 | 利用Vercel Cache |
代码精简 | 使用Layer分离依赖 | 自动Tree Shaking |
2. 状态管理方案
const redis = require('redis');
const client = redis.createClient();let cachedClient;async function connect() {if (cachedClient) return cachedClient;cachedClient = await c