
无服务器(Serverless)已从“未来趋势”变成“日常可选”。

过去,后端开发往往意味着租服务器、配置操作系统、部署容器、维护负载均衡、监控、备份。这些都耗时耗力,还容易出错。
现在,Serverless 架构把这些繁琐的基础设施工作交给云厂商来做:只要写函数“写完就丢上去”(Deploy),自动伸缩、按需计费、维护压力几乎是零。
典型场景包括:
这些场景过去要自己开服务器、配置 cron、设置反向代理、监控负载、处理故障,而现在只要写个 Lambda 函数 + API Gateway + IAM 权限,就能搞定。传送门
下面是一个实战范例:用 Python 写一个 Lambda + API Gateway 的公开 API,处理 POST 请求并返回 JSON。
User(请求者) -----> API Gateway -----> Amaozn Lambda 函数 -----> 返回 JSON假设要做一个简单工具:输入两个数字,返回它们的和 + 差 + 积 +商。
# 文件:lambda_function.py
def handler(event, context):
"""
接收 API Gateway Proxy 事件 (HTTP POST),body 是 JSON,
例: { "a": 10, "b": 3 }
返回: { "sum": 13, "diff": 7, "prod": 30, "quot": 3.3333 }
"""
import json
try:
body = json.loads(event.get("body", "{}"))
a = float(body.get("a", 0))
b = float(body.get("b", 0))
except Exception as e:
return {
"statusCode": 400,
"body": json.dumps({"error": "invalid JSON or missing fields", "details": str(e)})
}
result = {
"sum": a + b,
"diff": a - b,
"prod": a * b,
"quot": (a / b) if b != 0 else None
}
return {
"statusCode": 200,
"body": json.dumps(result)
}你可以通过亚马逊云科技控制台,也可以用 Amazon SAM / Serverless Framework / CDK 来部署。这里以 A mazon CLI + SAM 模板为例。SAM 模板示例(template.yaml)
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: 简单计算器 API
Resources:
CalcFunction:
Type: AWS::Serverless::Function
Properties:
Handler: lambda_function.handler
Runtime: python3.10
MemorySize: 128
Timeout: 10
Events:
ApiProxy:
Type: Api
Properties:
Path: /calc
Method: post部署流程:
lambda_function.py + template.yamlsam build
sam deploy --guidedhttps://xyz.execute-api.us-east-1.amazonaws.com/Prod/calc虽然亚马逊云科技一直有 Free Tier,但使用中有不少困扰:
所以很多人虽想用 Serverless,但总是在“怕掉坑”的状态 —— 写了几个函数就停了,或者一直只是读文档没动手。
好消息是:亚马逊云科技的 Free Tier 2.0 带来不少新东西,特别适合刚入门或者想快速验证想法的人。
除了最常见的“写一个 API 接口”,Serverless 的另一个经典玩法就是做 Webhook 接收器。场景很多:

GitHub / 微信 / 第三方服务
↓ 触发 Webhook
API Gateway (HTTP POST)
↓
Lambda 函数
↓
DynamoDB / S3 / 通知服务以下示例:接收 GitHub Webhook,解析 JSON payload,并把信息打印(或者写入 DynamoDB)。
import json
import base64
def handler(event, context):
"""
接收 GitHub Webhook (API Gateway Proxy Event)
"""
try:
body = event.get("body", "")
# GitHub 默认 Content-Type: application/json
payload = json.loads(body)
repo = payload.get("repository", {}).get("full_name", "unknown")
pusher = payload.get("pusher", {}).get("name", "unknown")
commit_msg = payload.get("head_commit", {}).get("message", "")
result = {
"repo": repo,
"pusher": pusher,
"commit_message": commit_msg
}
# TODO: 这里可以扩展成写 DynamoDB / 发通知 / 存 S3
print("Webhook received:", result)
return {
"statusCode": 200,
"body": json.dumps({"ok": True, "result": result})
}
except Exception as e:
return {
"statusCode": 400,
"body": json.dumps({"error": str(e)})
}X-Hub-Signature-256 签名,你可以在 Lambda 校验 secret。signature、timestamp、nonce 参数,也要在 Lambda 校验。Webhook 接收器的调用模式非常不稳定:有时一天几十次,有时几分钟就上百次。传统服务器要么长期空跑(浪费资源),要么高峰被打爆。
Lambda + API Gateway 就完美解决:按调用计费,没有请求时 0 成本。秒级伸缩,GitHub 或微信突然发来一堆事件也不会崩。
所以,如果说“Lambda + API Gateway”最适合的 Hello World 是 Calculator API。
现在是尝试 Serverless 架构的黄金开端:不用担心自己要买服务器、配置环境、规模扩容,只要写函数 + 配置触发 + 接入 API Gateway,就能弄一个稳定、可用的后端接口。
👉 如果你之前因为“怕被扣钱”“怕部署麻烦”而没动手,现在就去注册 亚马逊云科技账号→ 激活 Free Tier 2.0 → 写一个简单函数 + API Gateway 测试接口。
你的第一个 Serverless 后端,不仅可能就在今天起跑,还可能成为你未来工具 /后台服务 /SaaS 功能模块的基础。
以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~