如何配置AWS CloudFormation使Lambda日志同时输出至自定义与原日志组
实现Lambda日志同时输出至默认日志组与自定义日志组的CloudFormation配置
Lambda默认会将执行日志写入自带的日志组(格式为/aws/lambda/[函数名]),要实现日志同时输出到自定义日志组,最直接的方式是给默认日志组添加CloudWatch订阅过滤器,将日志实时转发到自定义日志组。以下是修改后的完整CloudFormation模板:
AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: # 自定义日志组 - 用于接收Lambda日志副本 CustomLambdaLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: /aws/lambda/custom-test-log-group RetentionInDays: 30 # 可根据需求调整日志保留天数 # Lambda函数(基于原模板修改) test: Type: 'AWS::Serverless::Function' Properties: FunctionName: test-function # 显式指定函数名,方便关联默认日志组 Role: !GetAtt LambdaExecutionRole.Arn # 若使用原有角色ARN,需确保其具备对应权限 Handler: test.lambda_handler Runtime: python3.8 CodeUri: test.py MemorySize: 128 Timeout: 200 Layers: - !Ref TestLayer1 # 原模板的!Ref test存在命名冲突,建议重命名层逻辑ID - !Ref TestLayer2 Events: NonGithubAPIs: Type: Api Properties: Path: /test/get Method: get RestApiId: !Ref TestRestApi # 同理,重命名API逻辑ID避免冲突 # Lambda执行角色(若原有角色无自定义日志组写入权限,可在此定义) LambdaExecutionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole # 包含默认日志组基础权限 Policies: - PolicyName: CustomLogGroupAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - logs:PutLogEvents - logs:CreateLogStream Resource: !GetAtt CustomLambdaLogGroup.Arn # 订阅过滤器:将默认日志组日志转发到自定义日志组 LambdaLogSubscriptionFilter: Type: AWS::Logs::SubscriptionFilter Properties: LogGroupName: !Sub /aws/lambda/${test} # 动态关联Lambda默认日志组 FilterPattern: "" # 空规则表示转发所有日志 DestinationArn: !GetAtt CustomLambdaLogGroup.Arn
关键配置说明:
- 自定义日志组:通过
AWS::Logs::LogGroup创建专属日志组,可自定义名称和保留周期。 - 权限控制:Lambda角色必须拥有向自定义日志组写入日志的权限(
logs:PutLogEvents、logs:CreateLogStream),若使用原有角色,需手动为其添加对应权限策略。 - 订阅过滤器:
AWS::Logs::SubscriptionFilter是实现日志复制的核心,通过关联默认日志组和自定义日志组,实现实时日志转发。 - 命名规范:原模板中多个资源使用
test作为逻辑ID会导致冲突,建议为层、API等资源设置唯一逻辑ID。
内容的提问来源于stack exchange,提问作者Ishaan Tiwari
相关产品推荐
相关产品推荐

