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

AWS EventBridge调用put-events时Detail格式异常排查求助

AWS EventBridge put-events 报MalformedDetail错误的原因及解决办法

原因

  • CLI读取JSON文件时会自动处理转义逻辑,如果你在myevent.json里的Detail已经是转义后的JSON字符串,CLI会再次转义,导致最终发送的内容格式彻底混乱,触发MalformedDetail错误。而控制台直接用未转义内容能成功,是因为控制台会自动帮你完成转义处理,不需要手动操作。
  • JSON文件本身存在隐性格式问题,比如多余的转义符、非UTF-8编码(带BOM),或者Detail字段的字符串包裹不规范。

解决方法

  • 直接用未转义的JSON对象作为Detail值
    把myevent.json里的Detail从转义后的字符串改成原生JSON对象,示例:
    错误写法:

    {
      "Entries": [
        {
          "Source": "my.app",
          "DetailType": "test.event",
          "Detail": "{\"key\": \"value\"}"
        }
      ]
    }
    

    正确写法:

    {
      "Entries": [
        {
          "Source": "my.app",
          "DetailType": "test.event",
          "Detail": {
            "key": "value"
          }
        }
      ]
    }
    

    改完后直接执行原命令即可。

  • 保留转义字符串时避免重复转义
    如果必须用转义后的字符串,改用--cli-input-json参数调用,这个参数会严格按文件里的JSON结构解析,不会额外转义:

    aws events put-events --cli-input-json file://myevent.json
    

    或者用jq先把转义字符串还原成JSON对象再传递:

    cat myevent.json | jq -c '.Entries[0].Detail = (.Entries[0].Detail | fromjson)' | aws events put-events --cli-input-json -
    
  • 检查文件编码
    确保myevent.json是UTF-8无BOM格式,用文本编辑器(比如VS Code)打开后,右下角可以查看和修改编码,避免隐性字符导致解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:25:16