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

Problem writing Lambda logs to CloudWatch, what could be wrong?

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

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:*:*:* 作为资源的更广泛的政策,就像我发现的一些例子一样。

该模板在 CloudFormation 上运行良好,并根据需要创建了资源,当我执行 lambda 函数作为测试时,一切正常,但未写入日志。它创建日志组和日志流,但日志流中没有任何内容。

这也不是 Lambda 函数的问题。我在创建模板之前手动部署了该函数,在这种情况下 CloudWatch Logs 工作正常。我完全按照手动方法中所写的方式复制了角色和策略来创建模板。

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

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

最后我解决了问题,但从我编写的策略中删除了 CloudWatch Logs 权限并使用了 AWS 的管理策略: ManagedPolicyArns: - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" 这样,日志就正常写入了 LogGroup。