使用 Lambda 函数日志
为帮助您排除故障,Amazon Lambda 会代表您自动监控 Lambda 函数。您可以借助 Lambda 控制台、CloudWatch 控制台、Amazon Command Line Interface(Amazon CLI)或 CloudWatch API 查看 Lambda 函数的日志。您还可以配置 Lambda 以将日志发送到 Amazon S3 和 Firehose。
只要函数的执行角色具有必要的权限,Lambda 就会捕获函数处理的所有请求的日志,并将其发送到 Amazon CloudWatch Logs(即默认目标)。您还可以使用 Lambda 控制台将 Amazon S3 或 Firehose 配置为日志记录目标。
-
CloudWatch Logs 是 Lambda 函数的默认日志记录目标。CloudWatch Logs 提供实时日志查看和分析功能,并支持根据您的日志数据创建指标和警报。
-
Amazon S3 对于长期存储来说经济实惠,并且可以使用 Athena 等服务来分析日志。延迟通常较高。
-
Firehose 提供将日志流式传输到各个目标的托管服务。如果您需要将日志发送到其他 Amazon 服务(例如,OpenSearch Service 或 Redshift Data API)或第三方平台(如 Datadog、New Relic 或 Splunk),Firehose 会通过提供预构建的集成来简化该过程。您也可以流式传输到自定义 HTTP 端点,而无需设置其他基础设施。
选择要向其发送日志的服务目标
选择服务作为函数日志的目标时,请考虑以下关键因素:
-
成本管理因服务而异。Amazon S3 通常为长期存储提供最经济的选择,而 CloudWatch Logs 允许您实时查看日志、处理日志和设置警报。Firehose 成本包括流媒体服务和与您配置流媒体相关的成本。
-
分析功能因服务而异。CloudWatch Logs 擅长实时监控,并与其他 CloudWatch 功能(例如 Logs Insights 和 Live Tail)原生集成。Amazon S3 可以很好地与 Athena 等分析工具配合使用,并且可以与各种服务集成,但可能需要额外的设置。Firehose 通过提供预构建的集成简化了到特定 Amazon 服务(如 OpenSearch Service 和 Redshift Data API)和支持的第三方平台(如 Datadog 和 Splunk)的直接流式传输,从而可能减少配置工作。
-
设置和易用性因服务而异。CloudWatch Logs 是默认的日志目标 – 它无需额外配置即可立即运行,并通过 CloudWatch 控制台提供直接的日志查看和分析。如果需要将日志发送到 Amazon S3,则需要在 Lambda 控制台中进行一些初始设置并配置存储桶权限。如果需要将日志直接发送到 OpenSearch Service 等服务或第三方分析平台,则 Firehose 可以简化该流程。
配置日志目标
Amazon Lambda 支持函数日志的多个目标。本指南说明可用的日志记录目标,并帮助您根据需要选择合适的选项。无论您选择哪个目标,Lambda 都会提供控制日志格式、筛选和传输的选项。
Lambda 支持 JSON 和纯文本格式的函数日志。JSON 结构化日志提供增强的可搜索性并支持自动分析,而纯文本日志则提供简单性并有可能降低存储成本。您可以通过配置系统日志和应用程序日志的日志级别来控制 Lambda 发送到所选目标的日志。筛选可以帮助您管理存储成本,并使您在调试期间更容易找到相关的日志条目。
有关每个目标的详细设置说明,请参阅以下各节:
为 Lambda 函数配置高级日志记录控件
为了让您可以更好地控制如何捕获、处理和使用函数日志,Lambda 提供了以下日志配置选项:
-
日志格式 - 为函数日志选择纯文本或结构化的 JSON 格式。
-
日志级别:对于 JSON 结构化日志,选择 Lambda 发送到 CloudWatch 的日志的详细信息级别,例如
FATAL
、ERROR
、WARN
、INFO
、DEBUG
和TRACE
。 -
日志组 - 选择您的函数发送日志的目标 CloudWatch 日志组。
要了解有关配置高级日志记录控件的更多信息,请参阅以下各节: