访问 AWS Lambda 的 Amazon CloudWatch 日志

Posted cloudrivers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问 AWS Lambda 的 Amazon CloudWatch 日志相关的知识,希望对你有一定的参考价值。

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

    技术图片

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

  4. 选择查看 CloudWatch 中的日志

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

AWS Lambda 执行角色

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 存储库中找到。

以上是关于访问 AWS Lambda 的 Amazon CloudWatch 日志的主要内容,如果未能解决你的问题,请参考以下文章

AWS Amazon Connect Lambda输入请求架构

在 AWS Cognito 和 Lambda 中获取 Facebook 访问令牌

Amazon Kinesis 和 AWS Lambda 重试

AWS:将日志从 Amazon CloudWatch 导出到 Amazon Redshift

AWS Lambda无法删除Amazon S3对象

Amazon API Gateway 和 AWS Lambda 中的错误处理模式