

# CloudWatch Lambda Insights 的故障排除和已知问题
<a name="Lambda-Insights-Troubleshooting"></a>

对任何问题执行问题排查的第一步是在 Lambda Insights 扩展程序中启用调试日志记录。为此，请对 Lambda 函数设置以下环境变量：`LAMBDA_INSIGHTS_LOG_LEVEL=info`。有关更多信息，请参阅[使用 AWS Lambda 环境变量](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)。

Lambda Insights 扩展程序会将日志发送到与函数相同的日志组中 (`/aws/lambda/{{function-name}})`。查看这些日志，看看错误是否可能与设置问题有关。

## 我没有看到 Lambda Insights 中的任何指标
<a name="Lambda-Insights-Troubleshooting-nometrics"></a>

如果您未看到预计可以看到的 Lambda Insights 指标，请检查以下可能性：
+ **指标可能只是存在延迟**：如果函数尚未被调用或数据尚未刷新，则您将看不到 CloudWatch 中的指标。有关更多信息，请参阅本部分后文的**已知问题**。
+ **确认 Lambda 函数具有正确的权限**：确保已将 **CloudWatchLambdaInsightsExecutionRolePolicy** IAM 策略分配给了函数的执行角色。
+ **检查 Lambda 运行时**：Lambda Insights 仅支持某些 Lambda 运行时。有关支持的运行时的列表，请参阅 [Lambda Insights](Lambda-Insights.md)。

  例如，要在 Java 8 上使用 Lambda Insights，您必须使用 `java8.al2` 运行时，而不能使用 `java8` 运行时。
+ **检查网络访问**：Lambda 函数可能使用的是不具有 Internet 访问权限的 VPC 私有子网，并且您没有为 CloudWatch Logs 配置 VPC 终端节点。为了帮助调试此问题，您可以设置环境变量 `LAMBDA_INSIGHTS_LOG_LEVEL=info`。

## 已知问题
<a name="Lambda-Insights-Troubleshooting-knownissues"></a>

数据延迟可能高达 20 分钟。当函数处理程序完成时，Lambda 会冻结沙盒，此操作也会冻结 Lambda Insights 扩展程序。当函数运行时，我们使用基于函数 TPS 的自适应批处理策略来输出数据。但是，如果长时间停止调用函数，并且缓冲区中仍有事件数据，则这些数据可能会被延迟到直到 Lambda 关闭空闲沙盒。当 Lambda 关闭沙盒时，我们会刷新缓冲的数据。