AWS Lambda 是一种无服务器计算服务。你不需要管理任何服务器,只需要上传代码,Lambda 就会帮你运行。你可以把它想象成一家“按次付费的自助洗衣店”。你不用买洗衣机,不用交水电费,也不用维护机器。你想洗衣服时,投币,机器就转起来。洗完,它自动停下。你只为你实际使用的那几十分钟付费。
Lambda 做的是同样的事。你写好代码(支持 Python、Node.js、Java、Go 等主流语言),上传到 Lambda。当有事件触发时,Lambda 迅速拉起一个运行环境,执行你的代码。代码跑完,环境自动销毁。你不会为闲置的计算资源花一分钱。它是无服务器架构的核心引擎,也是每位 AWS 学习者必须拿下的关键技术。
Lambda 的工作流程非常简单,只有三步:上传、触发、执行。
第一步,你把代码打包上传到 Lambda。也可以把代码打包成容器镜像上传。Lambda 会自动保存好代码,并为每个函数分配 512 MB 到 10 GB 的内存。CPU 和网络性能随内存大小按比例增加。内存越大,CPU 越快。
第二步,配置触发器。触发器是 Lambda 的“启动按钮”。常见触发器有很多种:API 网关(有人访问你的 API 地址时)、S3 存储桶(有人上传文件时)、DynamoDB 数据库(数据发生变化时)、SQS 消息队列(有新消息时)。也可以定时触发,比如每天早上 8 点执行一次。
第三步,Lambda 开始执行。它会快速准备好运行环境,运行你的代码,然后返回结果。第一次调用时冷启动需要几百毫秒。后续连续调用会保持环境预热,只需几毫秒。单个函数最长执行时间为 900 秒(15 分钟)。执行日志自动输出到 CloudWatch,方便调试。
AWS Lambda 覆盖海量轻量化云上业务场景,几乎适配所有"轻量、事件驱动"的任务。最经典的用法是搭配 API Gateway 搭建 RESTful API,前端发来请求,Lambda 处理业务逻辑并直接返回结果,完全不需要维护任何服务器。
在自动化运维场景中,可搭配S3、CloudWatch实现文件自动处理、日志自动清洗、定时巡检告警,帮助企业摆脱服务器运维负担。
场景一:文件上传后的即时处理。用户往 S3 上传一张照片,Lambda 自动触发,对照片进行压缩、加水印、生成缩略图。整个过程在几秒内完成,用户上传后立即看到处理结果。某社交应用使用 Lambda 后,图片处理成本下降了 80%。
场景二:API 后端。你用 API 网关加上 Lambda,几行代码就能搭建一个可无限扩展的 API。不需要配置服务器,不需要考虑负载均衡。某个小型电商网站的后台全部跑在 Lambda 上,日均处理十万个请求,每月费用不到 10 美元。
场景三:定时任务。比如每天凌晨两点,清理数据库中的过期记录。你只需要写一个 Lambda 函数,设置一个 CloudWatch 定时触发器(类似 cron 表达式)。不用维护一台 7x24 小时闲置的服务器做定时任务。
场景四:事件驱动架构和消息处理。把 Lambda 挂在 SQS 队列后面,每当有新消息进入队列,Lambda 自动拉取并处理。消息量大时,Lambda 自动并发。消息空闲时,Lambda 缩到零。完全符合“有活就干,没活就歇”的弹性哲学。