AWS Lambda + 微信小程序:全栈开发实战
架构设计
微信小程序 → API Gateway → AWS Lambda → S3 (数据存储)
↓
CloudWatch (监控)
后端:AWS Lambda
函数编写
import json
import boto3
def lambda_handler(event, context):
s3 = boto3.client('s3')
# 处理请求
body = json.loads(event['body'])
# 业务逻辑
result = process_request(body)
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': json.dumps(result)
}
部署要点
- 使用SAM模板管理基础设施
- 配置CORS允许小程序域名
- 设置环境变量管理密钥
前端:微信小程序
请求封装
const request = (url, data) => {
return new Promise((resolve, reject) => {
wx.request({
url: `https://xxx.execute-api.region.amazonaws.com/prod${url}`,
method: 'POST',
data,
success: resolve,
fail: reject
});
});
};
踩坑记录
- Lambda冷启动:预置并发解决
- API Gateway超时:设置30秒超时
- 微信域名白名单:添加AWS域名
- S3权限:IAM角色配置
成果
- 响应时间 < 500ms
- 月成本 < ¥10
- 支持1000+并发
Serverless是小成本项目的最佳选择。