实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API
理论千遍,不如动手一遍!在前面几篇文章中,我们了解了 Serverless 的概念、FaaS 的核心原理以及 BaaS 的重要作用。现在,是时候把这些知识运用起来,亲手构建一个简单但完整的 Serverless 应用了。
本次实战,我们将使用 Amazon Web Services (AWS) 这个主流的云平台,结合它的两个核心 Serverless 服务:
- AWS Lambda (FaaS): 运行我们的后端代码。
- AWS API Gateway (BaaS): 创建一个公开的 HTTP 接口,接收请求并触发 Lambda 函数。
目标: 创建一个简单的 HTTP GET API 端点,当用户访问这个端点时,它会返回一个 JSON 消息:“Hello from Lambda!”。
听起来很简单?没错!但这将让你体验到 Serverless 开发的核心流程。
准备工作
在开始之前,请确保你已准备好:
- 一个 AWS 账户: 如果没有,可以访问 AWS 官网 免费注册一个。新用户通常有一年的免费套餐额度,足够我们本次实验使用。
- 登录 AWS 管理控制台: 我们将主要通过 AWS 的网页界面来完成操作,对新手更友好。
- (可选) Node.js 环境: 我们将使用 Node.js 编写 Lambda 函数代码。虽然可以直接在 AWS 控制台编辑,但如果你想在本地编写和测试,需要安装 Node.js (LTS 版本即可)。
准备好了吗?我们开始吧!
第一步:创建 Lambda 函数
我们的“大脑”——处理请求的代码,将放在 Lambda 函数中。
- 登录 AWS 管理控制台。
- 在顶部的搜索栏中输入
Lambda
,然后点击进入 Lambda 服务页面。 - 点击 “创建函数” (Create function) 按钮。
- 选择 “从头开始创作” (Author from scratch)。
- 基本信息配置:
- 函数名称 (Function name): 输入一个有意义的名称,例如
myHelloFunction
。 - 运行时 (Runtime): 选择一个较新的 Node.js LTS 版本,例如
Node.js 18.x
或Node.js 20.x
。 - 架构 (Architecture): 保持默认的
x86_64
即可。 - 权限 (Permissions): 展开 “更改默认执行角色” (Change default execution role)。选择 “创建具有基本 Lambda 权限的新角色” (Create a new role with basic Lambda permissions)。这将自动创建一个允许函数将日志写入 AWS CloudWatch 的角色,方便后续排查问题。
- 函数名称 (Function name): 输入一个有意义的名称,例如
- 点击 “创建函数” (Create function)。等待函数创建完成。
编写函数代码:
-
函数创建成功后,向下滚动到 “代码源” (Code source) 部分。
-
你会看到一个默认的
index.mjs
或index.js
文件。将其中的全部内容替换为以下 Node.js 代码:// 使用 async/await 语法定义 handler export const handler = async