如何在AWS Lambda中将消息记录到Python中的错误日志

时间:2019-04-22 21:57:07

标签: node.js python-3.x amazon-web-services aws-lambda

我正在研究Lambda FAAS,并且尝试通过将数据写入恰好是CloudTrail日志流的“日志”进行调试。

在nodejs中,我可以将以下内容简单地放入Lambda FAAS中,并在CloudTrail日志流中看到该特定调用的内容:

log(“这将被写入cloudtrail日志流中”)

我如何在Lambda中的Python 3中执行以下操作?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

import logging

在代码中添加:

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

答案 1 :(得分:1)

您可以使用日志记录模块,也可以只使用打印语句。 AWS文档通过示例详细解释了它

https://docs.aws.amazon.com/lambda/latest/dg/python-logging.html

from __future__ import print_function

def lambda_handler(event, context):
    print('this will also show up in cloud watch')

返回'Hello World!'

答案 2 :(得分:0)

只要在lambda函数中配置的角色有权写入云监视日志,AWS就会自动拾取发送到日志或发送到std的所有消息(打印语句)并将其推送到cloudWach。 Lambda承担此角色,并使用权限策略来访问CloudWatch Logs以写入日志。

您将需要一个附加到以下角色的策略,或者可以附加一个名为“ AWSLambdaBasicExecutionRole”的AWS策略:

                     {
                            "Version": "2012-10-17",
                            "Statement": [
                              {
                                "Effect": "Allow",
                                "Action": [
                                  "logs:CreateLogGroup",
                                  "logs:CreateLogStream",
                                  "logs:PutLogEvents",
                                  "logs:DescribeLogStreams"
                              ],
                                "Resource": [
                                  "arn:aws:logs:*:*:*"
                              ]
                            }
                           ]
                        }

没有正确的权限,您将在CloudWatch中看到错误“加载日志流时出错。请刷新此页面,然后重试。”

此视频将演示权限问题,并查看云监视中的日志。 https://studio.youtube.com/video/0VPTlPSfFiE/edit

参考: https://geektopia.tech/post.php?blogpost=Write_To_CloudWatch_Logs_From_Lambda https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html