如果你已经用过 AWS EC2 和 S3,对云计算有了基本概念。AWS Lambda它代表了一种完全不同的思路——你不需要管理任何服务器,只需要上传代码,剩下的交给 AWS。

今天这篇文章,就带你彻底搞懂 Lambda 是什么、能解决什么问题,然后手把手完成一个函数的创建和调用。

什么是 AWS Lambda?

Lambda 是 AWS 提供的无服务器计算服务(Serverless Compute Service)。简单来说,你只需要把代码上传到 Lambda,它就会在需要时自动运行你的代码,并根据请求量自动扩展——从每天几个请求到每秒数千个请求,全部自动完成。

“无服务器”是什么意思?

“无服务器”不是说没有服务器,而是说你不需要看到或管理它们。AWS 负责所有底层工作:

  • 预置和配置服务器

  • 维护操作系统和运行环境

  • 自动打安全补丁

  • 处理故障恢复和容错

你只需要专注于写业务逻辑代码。Lambda 支持 Node.js、Python、Go、Java、C#、Ruby 等多种语言,你甚至可以用任何语言编写,只需要使用 Runtime API 即可。

Lambda 的核心特点

  1. 按需运行:Lambda 只在实际收到请求或事件时才运行你的代码。没有请求时,什么都不运行,也不产生费用。

  2. 自动扩展:Lambda 会根据传入事件的速率自动扩展计算容量。流量突发时,它可以瞬间拉起数百甚至数千个实例来处理请求。

  3. 按量付费:只需要为函数的实际执行时间和调用次数付费,没有空闲时段的浪费。

  4. 事件驱动:Lambda 可以响应各种 AWS 服务的事件——文件上传到 S3、数据库更新、HTTP 请求到达 API Gateway,都可以触发 Lambda 执行。

Lambda 能用来做什么?

Lambda 的应用场景非常广泛:

  • Web API 后端:配合 API Gateway,快速搭建无服务器 REST API 或 HTTP API

  • 文件处理:上传图片到 S3 后自动生成缩略图

  • 流式数据处理:配合 Amazon Kinesis 或 Apache Kafka 处理实时数据流

  • 定时任务:通过 EventBridge 调度器定期执行维护任务

  • AI 应用:构建聊天机器人、智能文档处理等生成式 AI 工作流

📌 注意:Lambda 函数每次执行有 15 分钟的超时限制 。对于需要运行更长时间的任务(如复杂的数据处理或 AI 工作流),通常需要配合 AWS Step Functions 来编排多个函数。

图文教程:创建并调用你的第一个 Lambda 函数

下面我们从零开始,创建一个简单的 Lambda 函数,并通过浏览器调用它。整个过程大约需要 15-20 分钟,而且使用的资源通常在 AWS 免费套餐范围内。

第一步:进入 Lambda 服务

登录 AWS 管理控制台,在顶部搜索框输入 “Lambda” 并点击进入。

第二步:创建 Lambda 函数

在 Lambda 控制台页面,点击橙色的 “创建函数” 按钮。

在创建页面填写以下信息:

  • 函数名称:输入 my-first-function

  • 运行时:选择 Node.js 22.x(或 Python 3.x,根据你熟悉的语言选择)

  • 架构:保持默认的 x86_64 即可

  • 执行角色:选择“创建具有基本 Lambda 权限的新角色”(这样 Lambda 会自动创建必要的 IAM 角色,允许函数向 CloudWatch 写日志)

完成以上配置后,点击右下角的 “创建函数” 按钮。

第三步:编写函数代码

创建成功后,你会进入函数的代码编辑器界面。默认的示例代码大致如下:

javascript

export const handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

这段代码定义了一个 handler 函数,当 Lambda 被触发时,它会返回一个 HTTP 响应,包含状态码 200 和一段文本 Hello from Lambda!

你可以直接使用这段代码,也可以把 'Hello from Lambda!' 改成你喜欢的任何文字。修改后,点击 “部署” 按钮保存。

第四步:创建函数 URL(最快捷的调用方式)

为了能从浏览器直接调用你的函数,我们需要给它分配一个 HTTP 端点。Lambda 提供了“函数 URL”功能,可以一键开启。

  1. 在函数详情页,找到 “配置” 选项卡,点击左侧的 “函数 URL”

  2. 点击 “创建函数 URL”

  3. 在“身份验证类型”中选择 “NONE”(这样可以从浏览器直接访问,适合测试)

  4. 点击 “保存”

系统会生成一个类似 https://xxxxxxxxx.lambda-url.us-east-1.on.aws/ 的 URL。

第五步:测试调用

方式一:通过浏览器测试

复制刚才生成的函数 URL,粘贴到浏览器地址栏,回车。你应该会看到:

text

"Hello from Lambda!"

方式二:通过控制台测试

在函数详情页,点击 “测试” 选项卡,创建一个新的测试事件(使用默认的 hello-world 模板即可),然后点击“测试”按钮。你会在执行结果中看到函数的返回值和日志信息。

第六步:查看执行日志

Lambda 会自动将日志发送到 CloudWatch Logs。在函数详情页点击 “监控” 选项卡,然后点击 “查看 CloudWatch 日志”,就能看到函数每次执行的详细日志,包括执行时间、内存使用等信息。这对于调试和性能分析非常有用。

进阶:让 Lambda 响应 API 请求

如果你的应用需要多个 API 端点(比如 /users/orders 等),更好的做法是使用 API Gateway 作为入口。

  1. 在 API Gateway 控制台创建一个 HTTP API

  2. 将你的 Lambda 函数配置为后端集成

  3. API Gateway 会根据不同的路径和方法,将请求路由到对应的 Lambda 函数

这样你就拥有了一个完整的、可扩展的无服务器 API 后端。

别忘了“打扫房间”

Lambda 本身只有在函数被调用时才收费,但如果你创建了相关的资源(如 API Gateway、S3 触发器、IAM 角色等),这些资源可能持续产生费用。测试完成后:

  1. 删除函数 URL(如果创建了)

  2. 删除 Lambda 函数:在 Lambda 控制台选中函数,点击“操作”→“删除”

  3. 清理 IAM 角色:如果 Lambda 自动创建了执行角色,可以在 IAM 控制台中删除

这样就不会产生不必要的费用了。


希望这篇教程能帮你迈出无服务器计算的第一步。Lambda 改变了我们构建应用的方式——从“先买服务器”变成“先写代码”,这种思维转变,值得每一位开发者亲身体验。