将 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。
我在尝试将我的 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。