**引言:**AWS Lambda 是一种无服务器计算服务,它允许您运行代码而无需预置或管理服务器。Lambda 会自动为您的函数运行代码,并自动扩展以应对请求负载。然而,为了确保您的 Lambda 函数按预期运行,监控其日志至关重要。AWS CloudWatch 是一项监控和日志记录服务,可以帮助您收集、查看和分析 Lambda 函数的日志。

为什么需要监控 Lambda 日志?
Lambda 函数的日志记录了函数执行过程中的详细信息,包括函数启动、执行结果、错误信息等。通过监控这些日志,您可以:
快速诊断和解决函数中的问题。
了解函数的执行模式和性能。
监控函数的异常行为。
配置 Lambda 函数以将日志发送到 CloudWatch默认情况下,Lambda 会自动将日志发送到 CloudWatch Logs。您无需进行额外配置。但是,您需要确保 Lambda 函数的执行角色具有将日志写入 CloudWatch 的权限。通常,Lambda 会为函数创建一个默认的执行角色,该角色包含将日志写入 CloudWatch 的权限(`AWSLambdaBasicExecutionRole` 策略)。
步骤1:检查执行角色权限
- 登录 AWS 管理控制台
- 导航到 Lambda 服务。
- 选择您要监控的函数。
- 在"配置"选项卡中,查看"执行角色"部分。确保该角色附加了 `AWSLambdaBasicExecutionRole` 策略(或包含 `logs:CreateLogGroup`、`logs:CreateLogStream` 和 `logs:PutLogEvents` 权限的策略)。
步骤2:查看 CloudWatch 日志
- 在 Lambda 函数控制台中,选择"监控"选项卡。
- 点击"查看 CloudWatch 中的日志"。
- 这将带您进入 CloudWatch 控制台,并自动打开该函数的日志组。
Lambda 函数的日志组名称格式为:`/aws/lambda/<functionname>`。
4. 在日志组中,您可以看到按时间排序的日志流。每个日志流对应一个函数实例(或容器)的生命周期。
5. 点击日志流,查看详细的日志事件。
使用 CloudWatch Logs Insights 分析日志CloudWatch Logs Insights 允许您交互式地搜索和分析日志数据。您可以使用查询语言来检索特定信息。
示例查询
- 在 CloudWatch 控制台中,选择"日志组"。
- 选择您的 Lambda 函数日志组。
- 点击"Logs Insights"。
- 在查询编辑器中,输入查询语句。例如: ``` fields @timestamp, @message | filter @message like /error/ | sort @timestamp desc | limit 20 ``` 此查询将检索最近20条包含"error"的日志消息。
- 点击"运行查询"查看结果。
设置 CloudWatch 警报
您还可以为 Lambda 函数的错误创建警报,以便在发生错误时及时通知。
- 在 CloudWatch 控制台中,选择"警报"。
- 点击"创建警报"。
- 选择"指标",然后选择"Logs"指标。
- 找到您的 Lambda 函数日志组的指标(注意:默认情况下,Lambda 不会提供错误计数的指标,您可能需要创建自定义指标)。
另一种方法:您可以在 CloudWatch Logs Insights 中创建一个指标过滤器,用于匹配错误日志,然后基于该过滤器创建警报。 - 配置警报条件,并设置通知方式(如电子邮件、SNS 等)。