Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda 将Lambda日志写入CloudWatch时出现问题,可能是什么问题?_Aws Lambda_Amazon Cloudformation_Amazon Cloudwatchlogs_Aws Sam - Fatal编程技术网

Aws lambda 将Lambda日志写入CloudWatch时出现问题,可能是什么问题?

Aws lambda 将Lambda日志写入CloudWatch时出现问题,可能是什么问题?,aws-lambda,amazon-cloudformation,amazon-cloudwatchlogs,aws-sam,Aws Lambda,Amazon Cloudformation,Amazon Cloudwatchlogs,Aws Sam,我在尝试将Lambda函数日志写入CloudWatch日志时遇到了一些问题。这似乎不是授权问题,如下所示: PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: !Sub arn:aws:logs:${AWS::Region}:${

我在尝试将Lambda函数日志写入CloudWatch日志时遇到了一些问题。这似乎不是授权问题,如下所示:

PolicyDocument:
    Version: 2012-10-17
    Statement:
        -
          Effect: Allow
          Action:
            - logs:CreateLogGroup
          Resource: !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:*
        - Effect: Allow
          Action:
            - logs:CreateLogStream
            - logs:PutLogEvent
          Resource: !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/${FunctionName}:*
我还尝试了一个更广泛的策略,将
arn:aws:logs::::::::::
作为参考资料,就像我找到的一些示例一样

当我执行lambda函数作为test时,模板在CloudFormation上可以正常工作,并且资源是根据需要创建的,一切都可以正常工作,但是日志没有写入。它创建日志组和日志流,但日志流中没有任何内容

Lambda函数也没有问题。在创建模板之前,我手动部署了该功能,在这种情况下,CloudWatch日志可以正常工作。我完全按照创建模板的手动方法复制了角色和策略

这是CloudFormation/SAM/Lambda中的某种已知错误吗?还是我做错了我没有注意到的事


如果您需要更多信息来理解上下文,请告诉我。谢谢

最后,我解决了这个问题,但从我编写的策略中删除了CloudWatch日志权限,并使用AWS的管理策略:

ManagedPolicyArns:
-“arn:aws:iam::aws:policy/service role/AWSLambdabasiceExecutionRole”

这样,日志就可以正常写入日志组

这很奇怪,你是怎么写日志的?你有我可以看一看的github回购协议吗?如果你愿意,我可以分享我的github用户名。谢谢你的回答@MrkFldig。我确实有,这是最新的。请随意提问,因为它还没有很好的文档记录。它是用Java编写的,我使用log4j appender来记录日志。所以在这里拍摄是因为我遇到了同样的问题,Bunyan,log4j的日志级别是多少?如果Log4j的默认值是一个高于该值的日志级别,那么您看起来主要是在使用INFO,而不会看到它们?检查:-尝试system.out方法或证明我说的是什么将info语句更改为error。可以在项目的log4j2.xml中看到,日志级别是info。我使用了您链接到的示例来创建我的log4j2 appender,它完全相同,我没有更改任何内容。我在问题中说过,当我手动部署CloudWatch日志时,它工作得非常好,只有当我通过CloudFormation部署它时,这个问题才会发生。您是否将Lambda作为同一个CloudFormation模板的一部分进行部署?如果是这样的话,您是否附加了一个允许它向CloudWatch写入的角色?