用途
AWS Lambda 运行代码时无需预置服务器,只需为消耗的计算时间付费,并能从每天少量请求自动扩展到每秒数千请求。该技能适用于事件驱动计算场景,例如创建函数、配置触发器、调试调用、优化冷启动等。
核心概念
- 函数(Function):代码与配置的打包,包含运行时、处理程序、内存、超时和 IAM 角色。
- 调用类型:
- 同步:调用方等待响应,用于 API Gateway、直接调用。
- 异步:触发后不等待,用于 S3、SNS、EventBridge。
- 基于轮询:Lambda 轮询来源,用于 SQS、Kinesis、DynamoDB Streams。
- 执行环境:Lambda 创建执行环境来运行函数,包含冷启动(新环境初始化)、热启动(复用现有环境)、处理程序(入口函数)、上下文(运行时信息)。
- 层(Layers):可复用的库、依赖或自定义运行时包,每个函数最多 5 个。
主要能力与常见模式
资料提供了通过 AWS CLI 和 boto3 创建 Python 函数、更新函数代码、添加 S3 触发器、添加 SQS 事件源、设置环境变量、创建并挂载层、同步与异步调用函数的具体命令与代码示例。
使用方式
可通过 AWS CLI 或 boto3 进行操作。资料列出了函数管理、调用、事件源、权限等命令参考,例如 create-function、update-function-code、update-function-configuration、delete-function、list-functions、get-function、invoke、create-event-source-mapping、add-permission 等。
最佳实践
- 性能:合理设置内存(内存越大 CPU 越强、执行越快);减少冷启动(保持函数热、使用预置并发);优化包体积;用层共享依赖;在处理程序外初始化以复用连接。
- 安全:IAM 角色遵循最小权限;敏感数据用 Secrets Manager;仅在需要时启用 VPC(会增加延迟);用 KMS 加密环境变量。
- 成本优化:设置合适超时;使用 ARM 架构(Graviton2)获得更好的性价比;尽可能批处理;用预留并发限制成本。
- 可靠性:为异步调用配置 DLQ;处理重试(异步事件重试两次);使处理程序幂等;使用结构化日志。
适用场景
事件驱动计算,包括 API Gateway 同步调用、S3/SNS/EventBridge 异步触发、SQS/Kinesis/DynamoDB Streams 轮询处理等。
限制与故障排查
资料列出常见问题及排查方法:超时错误(检查并增加超时)、内存不足(增加内存)、冷启动延迟(使用预置并发、减小包体积、用层、考虑 Graviton2)、权限拒绝(检查执行角色与策略)、VPC 连接问题(添加 NAT 网关、VPC 端点、检查安全组规则)。
其他具体限制(如各区域配额、并发上限等)暂未提供。