AWS EventBridge输入转换嵌套属性输出至CloudWatch Logs异常求助
解决AWS EventBridge输入转换中嵌套对象无法正确传递到CloudWatch Logs的问题
问题根源
你遇到的问题来自两个核心错误:
- 模板中字符串类型变量(如
timestamp)未用双引号包裹,导致生成无效JSON,CloudWatch Logs解析时因格式错误截断内容,仅显示开头的{。 - 嵌套对象变量(
data)因JSON结构错误被错误转换为[object Object]字符串,而非保留原对象结构。
正确配置方案
方案1:使用输入路径+修正模板
保留你原有的输入路径,修正模板的JSON语法:
- 输入路径:
{"timestamp":"$.time", "data": "$.detail.data"}
- 模板:
{"timestamp": "<timestamp>", "message": <data>}
方案2:直接在模板中使用JSONPath(更简洁)
无需定义输入路径,直接在模板里引用事件的JSONPath表达式:
{"timestamp": "<$.time>", "message": <$.detail.data>}
效果验证
修正后,EventBridge会生成合法的JSON输出:
{"timestamp": "2023-03-01T17:48:02Z", "message": {"key2": "value2", "key3": "value3"}}
该格式可被CloudWatch Logs完整接收并解析,且无需枚举嵌套对象的所有属性,适合处理复杂Schema的事件。
内容的提问来源于stack exchange,提问作者alanc10n
相关产品推荐
相关产品推荐

