当我使用无服务器运行 lambda 时未创建日志流
Posted
技术标签:
【中文标题】当我使用无服务器运行 lambda 时未创建日志流【英文标题】:Log Stream Not creating when i run lambda using serverless 【发布时间】:2021-06-22 10:45:34 【问题描述】:我使用 cloudformation 为我的 lambda 创建了一个日志组,当我运行我的 cloudformation 脚本时,lambda 函数包括 cloudwatch 日志触发器。当我调用 lambda 时,我使用 cloudformation 创建的日志组中没有任何日志流,但似乎 cloudformation 会自动为 lambda 创建一个日志组,无论我是否使用 cloudformation 创建一个日志组并将其包含到函数中.
请问有什么建议吗?
'''
resources:
Resources:
AccessLogs:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: /aws/lambda/$self:service-dev-AccessLogs
RetentionInDays: 7
LambdaExecutionRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action:
- 'sts:AssumeRole'
Policies:
- PolicyName: logpolicy
PolicyDocument:
Statement:
- Effect: Allow
Action:
- 'logs:CreateLogGroup'
- 'logs:CreateLogStream'
Resource: '*'
- Effect: Allow
Action:
- 'logs:PutLogEvents'
Resource: 'arn:aws:logs:*:*:*'
'''
【问题讨论】:
【参考方案1】:您不能将任意日志组分配给 Lambda 函数。有一个开放的Feature Request。
如果您只是想更改日志保留策略,那么您可以使用this technique 进行更改,但它仍然不允许您控制日志组名称。
【讨论】:
以上是关于当我使用无服务器运行 lambda 时未创建日志流的主要内容,如果未能解决你的问题,请参考以下文章
在 C++/CLI 中使用时未创建 C# 应用程序 log4net 日志文件