✅ 一、理解 Serverless 架构核心概念
核心理念:
-
无需管理服务器:只需编写业务逻辑,部署后由云平台托管运行环境。
-
事件驱动(Event-driven)
-
按需计费(按调用次数/资源消耗)
-
高可扩展性与自动伸缩
常见组件:
类型 | AWS服务 | 说明 |
---|---|---|
计算 | Lambda | 核心函数服务 |
网关/API | API Gateway | 将 HTTP 请求转发给 Lambda |
消息/队列 | SQS / SNS / EventBridge | 异步触发/事件总线 |
存储 | S3 / DynamoDB | 文件存储 / NoSQL 数据库 |
身份认证 | Cognito / IAM | 用户认证鉴权 |
DevOps | CloudFormation / CDK | 基础设施即代码(IaC) |
🏗️ 二、实战环境准备
-
注册 AWS 账号(推荐使用 Free Tier)
-
安装和配置 AWS CLI:
aws configure
-
安装 Serverless Framework(Node.js 环境):
npm install -g serverless serverless config credentials --provider aws --key YOUR_KEY --secret YOUR_SECRET
🛠️ 三、入门实战项目示例:构建一个 Serverless API 服务
场景:留言板 API(支持 POST / GET)
1. 目录结构:
serverless-message-board/
├── handler.py
├── serverless.yml
2. handler.py
:
import jsondef create_message(event, context):body = json.loads(event["body"])message = body.get("message", "No message")return {"statusCode": 200,"body": json.dumps({"msg": "Message received", "content": message})}def get_message(event, context):return {"statusCode": 200,"body": json.dumps({"msg": "Here is a message", "content": "Hello, Serverless!"})}
3. serverless.yml
:
service: message-board-apiprovider:name: awsruntime: python3.9region: ap-northeast-1functions:createMessage:handler: handler.create_messageevents:- http:path: messagemethod: postgetMessage:handler: handler.get_messageevents:- http:path: messagemethod: get
4. 部署服务:
sls deploy
5. 调用测试:
curl -X POST https://your-api-id.execute-api.aws-region.amazonaws.com/dev/message \-H "Content-Type: application/json" \-d '{"message": "Hello GPT!"}'