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

更新CloudFormation栈修改Lambda关联CloudWatch日志组不生效如何解决?

核心原因

Lambda 服务默认的日志输出路径是固定规则的,仅会写入名称符合 /aws/lambda/<你的Lambda函数实际名称> 格式的CloudWatch日志组。你在CloudFormation模板中自行定义的不符合该命名规则的日志组,无论是否调整DependsOn配置,都不会被Lambda识别为默认日志输出目标,DependsOn仅用于控制资源创建顺序,不修改Lambda的日志路由逻辑。

解决方案

根据你的业务需求,可二选一执行:

  • 方案1:坚持使用自定义名称的日志组
    1. 在Lambda的执行角色IAM策略中,新增写入目标自定义日志组的权限,示例如下:
    {
        "Effect": "Allow",
        "Action": [
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "arn:aws:logs:<AWS区域>:<你的账号ID>:log-group:<自定义日志组名称>:*"
    }
    
    1. 修改Lambda业务代码,手动初始化CloudWatch Logs SDK客户端,将运行时日志主动推送到指定的自定义日志组,覆盖默认的日志输出逻辑。
  • 方案2:接受默认日志组命名规则,仅需更换日志组
    1. 先手动从AWS控制台删除原有的旧默认日志组,避免Lambda复用旧资源
    2. 在CloudFormation模板中调整日志组定义,确保新日志组的名称完全符合 /aws/lambda/<Lambda函数实际名称> 格式,同步关联对应权限
    3. 更新CloudFormation栈,完成后触发一次Lambda测试调用,即可验证日志已写入新日志组
注意事项
  • 如果你的Lambda函数是通过CloudFormation定义的,函数名如果配置了自动生成的随机后缀,需要先获取到最终生成的实际函数名,再匹配日志组命名规则
  • 不要在模板中同时保留同名的新旧日志组定义,会导致栈更新报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:05