You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda执行正常但CloudWatch日志一段时间后不再生成

问题描述

我有一个由S3文件上传触发的AWS Lambda函数,用于归档文件。该函数运行正常,初期能在CloudWatch中查看新日志,但数日后不再生成新日志,不过S3中仍能看到新的归档文件。查看CloudWatch日志组列表无新日志组,删除旧日志组后也不会生成新组,仅重新部署Lambda(无代码变更)可恢复日志,但这并非合理解决方案。

附带的template.yaml配置
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Some service name

Parameters:
  ENVIRONMENT:
    Type: String
  AccessRole:
    Type: String

Resources:
  archiveS3Files:
    Type: AWS::Serverless::Function
    Properties:
      Handler: src/handlers/file/archiveS3Files.lambdaHandler
      Runtime: nodejs14.x
      Role: !Ref AccessRole
      MemorySize: 3000
      Timeout: 900
      Environment:
        Variables:
          ENVIRONMENT: !Ref ENVIRONMENT
      Events:
        UploadFileEvent:
          Type: S3
          Properties:
            Bucket: !Ref Bucket name
            Events:
              - 's3:ObjectCreated:*'
            Filter:
              S3Key:
                Rules:
                  - Name: prefix
                    Value: S3Archiver
                  - Name: suffix
                    Value: _startArchiving.json
排查与解决方案
  • 检查Lambda执行角色权限:确认AccessRole包含logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents权限,且权限未被撤销、过期或存在权限边界限制。权限不足会导致Lambda无法写入日志,但不影响业务逻辑执行。
  • 验证Lambda日志配置:在Lambda控制台“监控”标签下检查日志设置,确认未被手动禁用日志输出,或日志目标配置错误。
  • 排查CloudWatch配额限制:查看账户是否达到CloudWatch日志组/流的数量配额,或日志存储容量上限。配额不足会阻止新日志生成,但不影响Lambda正常运行。
  • 检查代码日志输出逻辑:确认函数代码中日志模块未出现异常,比如错误捕获后未输出日志、日志对象被意外销毁,或长期运行导致内存泄漏影响日志输出。
  • 处理Lambda容器复用问题:Lambda的容器复用可能导致日志流异常,尤其是容器长期运行时。可尝试调整并发配置,或在函数中添加日志刷新逻辑,确保日志能正常写入CloudWatch。
  • 确认S3触发事件传递:通过Lambda监控指标查看调用次数,确认与S3归档文件数量匹配,排除事件丢失或异常触发导致的日志异常。

内容的提问来源于stack exchange,提问作者Danil Suhomlinov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:00:15