使用 Lambda 函数日志 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 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 的日志的详细信息级别,例如 FATALERRORWARNINFODEBUGTRACE

  • 日志组 - 选择您的函数发送日志的目标 CloudWatch 日志组。

要了解有关配置高级日志记录控件的更多信息,请参阅以下各节: