AWS Lambda 会自动替您监控 Lambda 函数,并通过 Amazon CloudWatch 报告各项指标。为帮助您诊断函数中的问题,Lambda 会记录您的函数处理的所有请求,并通过 Amazon CloudWatch Logs 自动存储您的代码生成的日志。

您可以在代码中插入日志记录语句来帮助验证代码是否按预期运行。Lambda 自动与 CloudWatch Logs 集成,并将您的代码的所有日志推送到与 Lambda 函数关联的 CloudWatch Logs 组(即名为 /aws/lambda/<函数名> 的组)。有关日志组和通过 CloudWatch 控制台访问它们的更多信息,请参阅 Amazon CloudWatch 用户指南 中的监控系统、应用程序和自定义日志文件

您可以借助 Lambda 控制台、CloudWatch 控制台、AWS CLI 或 CloudWatch API 查看 Lambda 日志。下面的流程介绍如何使用 Lambda 控制台查看日志。

注意

使用 Lambda 日志没有额外的费用;不过,会收取标准 CloudWatch Logs 费用。有关更多信息,请参阅 CloudWatch 定价

使用 Lambda 控制台查看日志

  1. 打开 Lambda 控制台

  2. 打开 Lambda 控制台 函数页面

  3. 选择 Monitoring

    访问 AWS Lambda 的 Amazon CloudWatch 日志

    所示为 Lambda 函数指标的图形化表示。

  4. 选择查看 CloudWatch 中的日志

Lambda 使用您的函数的权限将日志上传到 CloudWatch Logs。如果您未在控制台中看到日志,请检查您的执行角色权限

AWS Lambda 函数的执行角色授予该函数访问 AWS 服务和资源的权限。您在创建函数时提供该角色,当您的函数被调用时,Lambda 代入该角色。您可以创建一个有权将日志发送到 Amazon CloudWatch 并将跟踪数据上传到 AWS X-Ray 的开发执行角色。

创建执行角色

  1. 打开 IAM 控制台中的“角色”页面

  2. 选择 Create role (创建角色)

  3. 创建具有以下属性的角色:

    • 可信任的实体 – AWS Lambda

    • 权限 – AWSLambdaBasicExecutionRoleAWSXrayWriteOnlyAccess

    • 角色名称 – lambda-role

可以随时在函数的执行角色中添加或删除权限,或配置您的函数以使用不同的角色。为您的函数使用 AWS 开发工具包调用的任何服务以及为 Lambda 用来启用可选功能的服务添加权限。

以下托管策略提供使用 Lambda 功能所需的权限:

  • AWSLambdaBasicExecutionRole – 将日志上传到 CloudWatch 的权限。

  • AWSLambdaKinesisExecutionRole – 读取来自 Amazon Kinesis 数据流或使用者的事件的权限。

  • AWSLambdaDynamoDBExecutionRole – 读取 Amazon DynamoDB 流记录的权限。

  • AWSLambdaSQSQueueExecutionRole – 读取 Amazon Simple Queue Service (Amazon SQS) 队列消息的权限。

  • AWSLambdaVPCAccessExecutionRole – 管理弹性网络接口以将您的函数连接到 VPC 的权限。

  • AWSXrayWriteOnlyAccess – 将跟踪数据上传到 X-Ray 的权限。

当您使用事件源映射调用您的函数时,Lambda 将使用执行角色读取事件数据。例如,Amazon Kinesis 的事件源映射从数据流读取事件并将事件成批发送到您的函数。可以将事件源映射用于以下服务:

Lambda 从其读取事件的服务

除了托管策略,Lambda 控制台还为创建包含与额外用例相关的权限的自定义策略提供模板。当您创建函数时,可以选择利用来自一个或多个模板的权限创建新的执行角色。当您从蓝图创建函数,或者配置需要访问其他服务的选项时,也会自动应用这些模板。示例模板可从本指南的 GitHub 存储库中找到。

相关文章: