本技能面向在 AWS Lambda 上构建无服务器应用的开发者,提供从函数部署到事件触发、权限配置和性能优化的操作参考。
一、用途 适用于构建由 API Gateway、S3、SQS 或 EventBridge 触发的事件驱动应用;运行无需管理服务器的定时任务;处理 Kinesis 或 DynamoDB 数据流;使用 API Gateway 或函数 URL 构建轻量 API;实现 webhook、Slack 机器人或自动化脚本;降低间歇性或突发负载的计算成本。
二、前提条件 需要安装并配置 AWS CLI v2;为所选资源配置最小权限 IAM 动作,并将 iam:PassRole 限制到执行角色,不应使用通配符服务授权;本地安装 Python 3.11+、Node.js 20+ 或其他受支持运行时;可选安装 AWS SAM CLI 用于本地开发和部署。
三、主要能力
- 创建与部署函数:打包 zip,使用 aws lambda create-function 指定运行时、处理程序、角色、内存、超时、环境变量、arm64 架构、X-Ray 追踪和标签;支持更新代码、更新配置、发布版本、创建别名及基于权重的金丝雀部署。
- 函数代码示例:提供 API Gateway REST 代理(v1)事件处理示例,包括日志记录、JSON 解析、状态码返回和异常处理;以及 SQS 批处理示例,通过 batchItemFailures 仅重试失败消息。
- Lambda 层:构建包含 Python 依赖的层目录,发布层版本并附加到函数,列出兼容层。
- 事件源映射:为 SQS 配置批大小、批处理窗口和 ReportBatchItemFailures;为 DynamoDB Streams 配置起始位置、重试次数、批处理错误二分和失败目标 DLQ;通过权限和 S3 通知配置 S3 触发;使用 EventBridge 规则实现 cron 定时触发。
- 函数 URL:创建函数 URL 配置,设置 CORS 并添加调用权限;可选用 AWS_IAM 授权或 NONE 公开访问,资料提示 CORS 不是身份认证。
- 冷启动优化:配置预置并发、预留并发,为 Java 函数启用 SnapStart;建议对架构进行基准测试、减小包体积、将 SDK 客户端初始化放在处理程序外、避免不必要的 VPC、对延迟敏感路径使用预置并发。
- SAM 模板:提供包含 Globals、参数、API 函数、SQS 队列处理器、层、DynamoDB 表和 SQS 队列的模板示例,以及 sam build、local invoke、local start-api、deploy、logs 等 CLI 命令。
- 故障排查:列出超时、内存不足、权限拒绝、冷启动超过 5 秒、SQS 消息重复处理、事件源映射被禁用、层未找到、金丝雀部署未切换、无法调用函数 URL 等问题及对应修复方向。
四、使用方式 通过 AWS CLI 执行示例命令完成函数、层、事件源映射和权限配置;通过 SAM 模板和 SAM CLI 进行本地测试与部署。示例命令中的区域、账户 ID、角色 ARN、队列名等需替换为实际值。
五、适用场景 事件驱动后端、定时任务、流数据处理、轻量 API、webhook 与自动化脚本、间歇性负载。
六、限制 基础设施命令可能影响服务,变更状态前应确认目标主机和范围并准备备份或快照;本技能为文档导入,未捆绑上游脚本和模板;环境变量、层和 S3 通知配置命令会替换完整配置,需先读取并合并现有设置;原生依赖需针对所选 Linux 运行时和架构构建;SQS 示例假设标准队列,FIFO 部分失败需在首次失败处停止并包含未处理记录以保持顺序;所有可重试处理程序需要幂等副作用;预置并发和公开调用会产生费用;自 2025 年 10 月起,函数 URL 授权需要同时具备调用权限。