--- title: "AWS Lambda" type: entity tags: - AWS - Serverless - Compute - Lambda sources: - public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee last_updated: 2026-04-14 --- ## Aliases - Lambda - AWS Lambda ## Definition AWS Lambda 是 AWS 的无服务器(Serverless)计算服务——开发者只需编写业务逻辑函数(Handler),AWS 负责所有底层运维:负载均衡、自动扩展、安全补丁和容量管理。Lambda 函数由事件(event)触发,事件即云资源状态的任何变化。 ## Core Properties | 属性 | 值 | |------|-----| | 触发模式 | 同步调用、异步调用、事件源映射 | | 权限模型 | 执行角色(Execution Role)+ 资源策略(Resource-Based Policy) | | 代码管理 | 版本(Version)、别名(Alias)、Layers(共享公共依赖) | | 架构支持 | x86 和 ARM64(ARM64 提供更优性价比) | | 监控 | CloudWatch 指标(请求数、错误数、延迟、节流) | | 调试工具 | Amazon Q(集成 AI 辅助调试) | | 性能调优 | Lambda Power Tuning(比较不同配置的性能和成本) | ## Lambda Handler 模式 Lambda 函数接收三个核心参数: 1. **Handler** — 入口函数,事件触发时执行 2. **Event Object** — 触发事件的数据结构(API Gateway 请求、S3 对象变更等) 3. **Context Object** — 运行时信息(超时设置、内存限制、日志句柄等) ## Invocation Patterns - **同步调用(Synchronous)**:调用方等待响应,如 API Gateway → Lambda - **异步调用(Asynchronous)**:Lambda 自动处理重试(最多 2 次),如 S3 事件 → Lambda - **事件源映射(Event Source Mapping)**:Lambda 轮询流式服务(Kinesis、DynamoDB Stream、SQS)批量处理记录 ## Permissions Model Lambda 权限模型基于 IAM 的最小权限原则: | 权限类型 | 作用对象 | 说明 | |---------|---------|------| | Execution Role | Lambda 函数 | 定义函数能调用哪些 AWS 资源和服务 | | Resource-Based Policy | 其他 AWS 账号/服务 | 定义谁能/什么能触发该 Lambda 函数 | ## Lambda Layers Lambda Layers 允许跨多个 Lambda 函数共享公共代码和依赖: - 运行时环境(如 Python boto3 库) - 自定义运行时 - 配置和脚本 Layers 避免了每个函数重复打包相同依赖,减少部署包大小和更新成本。 ## Connections - [[Serverless-Computing]] ← is_core_service_of ← [[AWS-Lambda]] - [[AWS-Lambda]] ← triggered_by ← [[Amazon-EventBridge]] - [[AWS-Lambda]] ← exposed_via ← [[Amazon-API-Gateway]] - [[AWS-Lambda]] ← orchestrated_by ← [[AWS-Step-Functions]] - [[AWS-Lambda]] ← monitored_by ← [[CloudWatch]] - [[SAM-Serverless-Application-Model]] ← deploys ← [[AWS-Lambda]] ## Related Entities - [[Amazon-API-Gateway]] — Lambda 的 API 暴露层 - [[AWS-Step-Functions]] — Lambda 的工作流编排层 - [[Amazon-EventBridge]] — Lambda 的事件驱动触发源 - [[CloudWatch]] — Lambda 的监控和日志层