如何在python中禁用来自lambda的默认日志消息

san*_*osh 6 python amazon-web-services amazon-cloudwatch aws-lambda

我有一个用python编写的AWS Lambda函数,我只需要在CloudWatch Logs中记录的消息。我已经尝试了watch望塔中给出的示例,但是仍然无法正常工作。

START RequestId: d0ba05dc-8506-11e8-82ab-afe2adba36e5 Version: $LATEST
(randomiser) Hello from Lambda
END RequestId: d0ba05dc-8506-11e8-82ab-afe2adba36e5
REPORT RequestId: d0ba05dc-8506-11e8-82ab-afe2adba36e5
Duration: 0.44 ms Billed Duration: 100 ms Memory Size: 128 MB   Max Memory Used: 21 MB*
Run Code Online (Sandbox Code Playgroud)

从上面的内容中,我只需要(randomiser) Hello from Lambda登录CloudWatch,没有STARTENDREPORT行。

San*_*rma 6

如果您启用了日志,您将始终获得默认日志。您无法禁用它们。

但是,在某些情况下,您可能希望某个特定的 Lambda 函数根本不发送日志。您可以通过专门为该 Lambda 函数创建一个新角色来解决这个问题,并且没有那里的日志记录权限。

FWIW,如果您需要在日志记录和不记录之间频繁切换,您可以拥有如下的策略文件。

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

并在需要记录时将“拒绝”更改为“允许”。


小智 -1

没有直接的方法来禁用这些日志。不过,一个简单的解决方法是从 Lambda 执行角色中删除 CloudWatch Logs 权限。Lambda 函数使用此角色访问其他 AWS 服务,如果您删除 CloudWatch 权限,它将无法将日志推送到 CloudWatch。

注意:如果您这样做,您将无法将任何日志从 lambda 推送到 CloudWatch

  • 我需要来自 lambda 的日志,但不需要来自 lambda 的默认日志消息。 (11认同)