一、引言
AWS Lambda 作为无服务器计算的核心服务,默认将所有函数日志输出到 CloudWatch Logs。但日志分散在多个 Log Group 中,需通过 CloudWatch 实现:
✅ 实时错误追踪:秒级捕获函数执行异常
✅ 性能分析:统计内存 / 耗时 / 冷启动数据
✅ 日志聚合:跨函数关联请求链路(如 X-Ray 集成)
二、配置步骤
步骤 1:启用 Lambda 自动日志推送
登录 AWS 控制台 → 进入 Lambda 服务
选择目标函数 → "Configuration" 标签页
在 **"Permissions"** 中确认执行角色包含权限:
{
"Effect": "Allow",
"Action": "logs:CreateLogGroup",
"Resource": "*"},{
"Effect": "Allow",
"Action": ["logs:CreateLogStream","logs:PutLogEvents"],
"Resource": "arn:aws:logs:REGION:ACCOUNT_ID:*"}
步骤 2:在 CloudWatch 中定位日志
进入 CloudWatch 控制台 → 选择 "Logs Insights"
在查询框输入 Lambda 日志组路径:
# 标准路径格式/aws/lambda/YOUR_FUNCTION_NAME
使用查询语法快速过滤
步骤 3:设置关键指标告警
在 CloudWatch → "Alarms" 创建新告警
选择指标:Lambda > Errors 或 Duration
设置阈值(如:ErrorCount > 0 持续 1 分钟)
绑定 SNS 通知(邮件 / Slack / 微信机器人)
三、高阶监控技巧
结构化日志分析
在 Lambda 代码中使用 JSON 格式输出日志:
import jsonprint(json.dumps({"level": "ERROR", "request_id": context.aws_request_id}))
通过 CloudWatch 查询:| parse @message '"request_id": "*"' as request_id
冷启动追踪
筛选日志中的REPORT行:| filter @message like /REPORT/ | stats count() by bin(5m)
成本优化建议
监控Duration接近超时阈值的函数,调整内存配置降低费用(我们可提供 AWS 成本优化方案)。
