**作者:David Boyne,于 2023 年 11 月 16 日发布于, , **
AWS 今天推出了 AWS Lambda的高级日志控制功能,使开发人员和运维人员能够更好地管理其函数日志的捕获、处理和使用。此次发布引入了三项新功能,以简化和增强 Lambda的默认日志体验,包括:
能够识别和筛选相关日志消息对于排查和修复关键问题至关重要。为了帮助开发人员和运维人员监控和排查故障,Lambda 服务会自动捕获并将日志发送到 CloudWatch Logs。
之前,Lambda的日志以明文格式输出,这种非结构化格式可能使得日志查询或过滤变得复杂。例如,您需要手动搜索并关联日志,例如使用“START”、“END”、“REPORT”或函数调用的请求 ID 等字符串标识符。同时,由于缺乏原生的日志增强功能,您需要进行定制化的工作来从日志中提取数据以进行自动化分析或构建分析仪表盘。
重要提示 :现在,您可以在一个地方聚合多个函数的日志,以便统一应用安全性、治理和保留策略。
Lambda 现在原生支持以 JSON 格式捕获结构化日志,即以一系列键值对显示,便于更轻松地搜索和过滤日志。JSON还支持在日志中添加自定义标签和上下文信息,从而实现对大量日志的自动分析。
要在 Lambda 控制台中设置日志格式,请选择 配置 选项卡,在左侧面板中选择 监控和操作工具 ,然后更改日志格式属性:

当前,Lambda 原生支持捕获应用程序日志(由函数代码生成的日志)和系统日志(由 Lambda 服务生成的日志)以 JSON格式输出。需要注意的是,此功能适用于非废弃版本的 Python、Node.js 和 Java Lambda 管理运行时。
您可以将 JSON 结构化格式与 (EMF) 一起使用,从而将自定义指标嵌入到 JSON 结构化日志消息中,CloudWatch 会自动提取自定义指标以进行可视化和告警。
现在,您可以按日志级别(如 ERROR、DEBUG 或 INFO)过滤 Lambda日志,无需修改代码。这一简化的日志级别过滤功能使您在调试错误时,可以选择所需的日志详细程度,而不必在大量日志中进行筛选。
在 Lambda 控制台中,可以设置 应用程序日志级别 和 系统日志级别 属性:

通过这种功能,您可以选择适当的日志量。例如,您可以设置较高的日志级别以提高生产环境日志的信噪比,或者设置较低的日志级别以捕获详细的调试日志事件。
之前您无法为函数指定自定义 CloudWatch 日志组,因此无法将多个函数的日志流式传输到共享日志组中。现在您可以选择一个自定义的 CloudWatch日志组,以便自动聚合来自多个函数的日志。这样可以在应用程序级别应用安全性、治理和保留策略,而不必对每个函数单独设置。
您可以在 Lambda 控制台中输入目标日志组名称来设置自定义日志组。如果输入的日志组不存在,Lambda 会自动创建它。

高级日志控制功能可以通过 、、AWS 命令行界面 (CLI) 以及基础设施即代码 (IaC) 工具(如 AWS Serverless应用程序模型 (AWS SAM) 和 )进行配置。
以下示例展示了如何使用 AWS SAM 构建和部署 Lambda 的新高级日志控制资源。
以下图展示了 Lambda 函数处理新创建的 Amazon S3 对象的流程,两个函数将日志记录到同一个 CloudWatch 日志组中。
删除)
bash git clone https://github.com/aws-samples/advanced-logging-controls-lambda/ cd advanced-logging-controls-lambdabash sam buildbash sam deploy --guidedadvanced-logging-controls-lambdaus-east-1)删除 s3://example-s3-images-bucket`
您可以在 CloudWatch Logs 中查看记录在 AggregatedLabelsLogGroup 中的日志。
Lambda 的高级日志控制功能使您能更灵活地管理日志。通过日志级别和格式控制,可以更有效地搜索、查询和过滤日志,帮助排查问题。同时,您还可以选择 Lambda 日志发送的 CloudWatch 日志组,从而将多个函数的日志聚合到单一日志组中,应用相关的保留、安全和治理策略。
要开始使用,请在任何新或现有的 Lambda 函数的日志配置中指定所需的设置。
高级日志控制功能在所有 AWS 可用区域均可用,且无需额外收费。了解更多关于 的内容。
如需更多无服务器学习资源,请访问 。
Leave a Reply