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

EventBridge规则中发送至CloudWatch Logs的Input Transformer失效

EventBridge Input Transformer写入CloudWatch日志失败排查

问题概述

  • 配置EventBridge规则匹配AWS Batch作业状态变更事件,规则匹配模式:
    {
      "detail-type": ["Batch Job State Change"],
      "source": ["aws.batch"]
    }
    
  • 目标为现有CloudWatch日志组,使用「匹配事件」输入时,事件可正常写入日志
  • 切换为「Input Transformer」后,事件不再出现在日志中,规则监控显示调用失败;死信队列收到转换后的预期事件(消息体符合模板定义),错误属性为:
    ERROR_CODE: SDK_CLIENT_ERROR
    ERROR_MESSAGE: Unknown exception.
    

排查步骤及解决方案

1. 检查Input Transformer模板的格式兼容性

CloudWatch日志的PutLogEvents API对输入格式有隐含要求,默认「匹配事件」模式会自动封装成符合要求的结构,而自定义转换后的结构可能缺失必要字段:

  • 尝试调整模板,将转换后的内容封装为CloudWatch接受的message字段,同时保留时间戳:
    {
      "timestamp": <jobTime>,
      "message": "{\"id\":\"<eventId>\",\"detail\":{\"jobName\":\"<jobName>\",\"jobId\":\"<jobId>\",\"jobQueue\":\"<jobQueue>\",\"status\":\"<jobStatus>\"}}"
    }
    
  • 确认模板JSON结构完全合法,无语法错误(如遗漏逗号、括号不匹配)

2. 验证EventBridge服务角色权限

即使「匹配事件」模式正常,需确认服务角色权限覆盖Input Transformer场景:

  • 检查EventBridge关联的角色(自定义或默认)是否包含logs:PutLogEvents权限,资源范围需包含目标日志组ARN
  • 确认角色信任策略允许events.amazonaws.com扮演该角色
  • 若使用默认角色,检查权限策略是否未被修改,确保包含CloudWatch日志写入权限

3. 核对CloudWatch日志组资源策略

  • 确认资源策略中PutLogEvents操作的主体包含EventBridge规则所在账户或服务角色ARN
  • 排除策略中对日志事件结构的限制(如要求特定字段)

4. 提取详细错误信息

  • 通过CloudTrail搜索EventBridge调用PutLogEvents的API请求,查看具体错误类型(如InvalidParameterException),定位格式或权限问题
  • 查看EventBridge规则的监控指标,确认失败请求的详细错误维度

关键结论

最常见的原因是自定义转换后的事件格式不符合CloudWatch日志的API要求,优先调整Input Transformer模板为CloudWatch兼容的结构,再通过CloudTrail获取具体错误信息验证问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:50:12