写点什么

Amazon Lambda + API Gateway 实战,无服务器架构入门

作者:掘金安东尼
  • 2025-09-19
    广东
  • 本文字数:1951 字

    阅读完需:约 6 分钟

Amazon Lambda + API Gateway 实战,无服务器架构入门



过去,后端开发往往意味着租服务器、配置操作系统、部署容器、维护负载均衡、监控、备份。这些都耗时耗力,还容易出错。

现在,Serverless 架构把这些繁琐的基础设施工作交给云厂商来做:只要写函数“写完就丢上去”(Deploy),自动伸缩、按需计费、维护压力几乎是零。

典型场景包括:

快速搭一个公开 API(例如让前端调用,或让外部服务 Webhook 回调)

写一个定时任务(cron),如每天清理一下临时文件/数据库中的旧数据/生成报告

为内网提供内部工具接口/自动化脚本

这些场景过去要自己开服务器、配置 cron、设置反向代理、监控负载、处理故障,而现在只要写个 Lambda 函数 + API Gateway + IAM 权限,就能搞定。传送门

技术切入:Amazon Lambda 的玩法

下面是一个实战范例:用 Python 写一个 Lambda + API Gateway 的公开 API,处理 POST 请求并返回 JSON。

假设要做一个简单工具:输入两个数字,返回它们的和 + 差 + 积 +商。

Lambda 函数(Python)

部署步骤(手动 + IaC)

你可以通过亚马逊云科技控制台,也可以用 Amazon SAM / Serverless Framework / CDK 来部署。这里以 Amazon CLI + SAM 模板为例。SAM 模板示例(template.yaml)

部署流程:

安装 Amazon CLI / SAM CLI,并配置好凭证

在项目目录放 lambda_function.py + template.yaml

运行:

SAM 会帮你创建 Lambda + API Gateway + IAM 角色等,最终会给一个 URL,比如 https://xyz.execute-api.us-east-1.amazonaws.com/Prod/calc

旧版 Free Tier 的痛点

虽然亚马逊云科技一直有 Free Tier,但使用中有不少困扰:

免费额度很分散(Lambda 的调用次数、API Gateway 的流量、数据传出入、日志记录等),新手常常没看清哪个收费项超限,就被“意外扣费”吓得不敢用。

测试频繁 + 多次部署 → 很快超过免费调用次数或带宽限制

对于一个小型 API + Webhook +定时任务组合,多项收费项叠加,新人觉得“写函数”这件事有时候成本并不低。

所以很多人虽想用 Serverless,但总是在“怕掉坑”的状态 —— 写了几个函数就停了,或者一直只是读文档没动手。

Free Tier 2.0 的改善

好消息是:亚马逊云科技的 Free Tier 2.0 带来不少新东西,特别适合刚入门或者想快速验证想法的人。

注册就能拿一个“起步奖励”(比如 100 美元抵扣金),完成特定任务最多能拿到 200 美元的抵扣金。

在任务清单里包含部署一个带 URL 的 Lambda 函数 + API Gateway,这意味着你只要完成这个任务,就能获得额外抵扣,使你可以安心写函数、不怕因为少量调用被扣费。

Free Tier 2.0 在“新人期”一般设有一个保护期(例如 6 个月),在这个期间如果你只在任务+免费额度内使用,不会被误扣费。这样你可以大胆试错、写函数、部署 Webhook、做 MVP,而不会因费用问题退缩。

实战扩展

除了最常见的“写一个 API 接口”,Serverless 的另一个经典玩法就是做 Webhook 接收器。场景很多:



GitHub 仓库有 Push / PR / Issue 更新时,触发一个 Lambda 来同步到你自己的数据库、或者发到钉钉/Slack 群里。

微信公众平台事件(用户关注、发送消息),直接调用 Lambda,自动回复欢迎语,或者把用户信息存入 DynamoDB。

第三方支付平台的支付回调,也可以直接打到 API Gateway → Lambda,完成订单状态更新。

以下示例:接收 GitHub Webhook,解析 JSON payload,并把信息打印(或者写入 DynamoDB)。

API Gateway

创建一个 POST /webhook 路由。

确保“接收原始 body”模式(不要自动转义或重写)。

安全性

GitHub 提供 X-Hub-Signature-256 签名,你可以在 Lambda 校验 secret。

微信公众平台回调有 signature、timestamp、nonce 参数,也要在 Lambda 校验。

存储 & 自动化

把回调数据存到 DynamoDB 或 S3,便于后续统计和查询。

配合 EventBridge + SNS,可以直接“转发”这些事件到邮件 / 短信 / IM 群。

Webhook 接收器的调用模式非常不稳定:有时一天几十次,有时几分钟就上百次。传统服务器要么长期空跑(浪费资源),要么高峰被打爆。

Lambda + API Gateway 就完美解决:按调用计费,没有请求时 0 成本。秒级伸缩,GitHub 或微信突然发来一堆事件也不会崩。

所以,如果说“Lambda + API Gateway”最适合的 Hello World 是 Calculator API。

结论

现在是尝试 Serverless 架构的黄金开端:不用担心自己要买服务器、配置环境、规模扩容,只要写函数 + 配置触发 + 接入 API Gateway,就能弄一个稳定、可用的后端接口。

👉 如果你之前因为“怕被扣钱”“怕部署麻烦”而没动手,现在就去注册 亚马逊云科技账号→ 激活 Free Tier 2.0 → 写一个简单函数 + API Gateway 测试接口。

你的第一个 Serverless 后端,不仅可能就在今天起跑,还可能成为你未来工具 /后台服务 /SaaS 功能模块的基础。

以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~

用户头像

安东尼陪你度过漫长编程岁月~ 2022-07-14 加入

真正的大师,永远怀着一颗学徒的心(易)

评论

发布
暂无评论
Amazon Lambda + API Gateway 实战,无服务器架构入门_掘金安东尼_InfoQ写作社区