CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
无服务器入门/课时/AWS Lambda 入门
RawBlame
课时目录12 节

无服务器入门

  1. 01无服务器是什么
  2. 02十二要素应用
  3. 03FaaS 执行模型
  4. 04AWS Lambda 入门
  5. 05事件驱动架构
  6. 06API Gateway
  7. 07冷启动与性能
  8. 08无状态与外部存储
  9. 09数据库迁移
  10. 10本地开发与部署
  11. 11成本与限制
  12. 12综合练习

AWS Lambda 入门

Handler、IAM;衔接 aws-lambda。

35 分钟

AWS Lambda 入门

AWS Lambda 是本站 Serverless 路径的 参考实现:Java、Python、Node 等 Handler 打包上传,由 IAM 角色 授权访问 S3、DynamoDB 等。与 aws-lambda 互补——本课偏 模型与最小可运行骨架,那课偏 AWS 控制台与账单语境。

学习目标

  • 读懂 Handler 入口、event/context 与返回值
  • 配置执行角色(Execution Role)与最小权限
  • 知道部署包(zip / container)与运行时选型要点

最小 Handler 结构(Java)

public class Handler implements RequestHandler<Map<String, Object>, Map<String, Object>> {
    @Override
    public Map<String, Object> handleRequest(Map<String, Object> input, Context context) {
        context.getLogger().log("requestId=" + context.getAwsRequestId());
        return Map.of("statusCode", 200, "body", "ok");
    }
}

Context 提供 requestId、剩余时间、内存限制——长逻辑应 主动检查 getRemainingTimeInMillis(),避免被硬杀。

IAM 与网络

组件作用
Execution RoleLambda 运行时身份,访问 AWS API
Resource Policy谁可以 调用 该函数(如 S3、API GW)
VPC 配置访问私有 RDS 时挂 ENI;会增加冷启动

遵循 aws-iam:只给 dynamodb:GetItem on 一张表,而不是 dynamodb:*。

部署与运行时

  • Zip 部署:类路径 + 依赖 fat jar;注意 250MB 解压上限
  • Container 镜像:大依赖或自定义 OS 层;冷启动可能更重
  • 运行时:选 LTS(如 Java 21),与本地 CI 一致

触发器配置在函数 之外:API Gateway、S3、SQS、EventBridge 等,见 srv-events。

与 EC2 Spring Boot 的分工

维度LambdaEC2 + Spring Boot
启动毫秒—秒级(含冷启动)分钟级部署
计费请求 + GB-秒实例小时
模型函数长期监听端口

本站 backend 主路径仍是 Spring Boot;Lambda 适合 边缘任务、Webhook、轻量 API。

练习

  • 在 AWS 控制台创建一个 Hello World 函数,记下 Execution Role 名
  • 列出访问 DynamoDB 所需的最小 IAM 动作三条
  • 对照 aws-s3,思考 S3 上传事件触发 Lambda 的数据流

小结

Handler + IAM Role + 触发器 = Lambda 三件套。 下一课把触发器扩展成完整 事件驱动架构 图景。

加载本节练习…
← 上一课FaaS 执行模型下一课 →事件驱动架构