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

使用Lambda转换AVRO至JSON时AWS Kinesis Firehose输出结构错误排查

Kinesis Firehose返回「Invalid output structure」错误排查建议
  • 严格校验Lambda输出结构
    Firehose对Lambda返回的格式有强制要求,必须是如下结构:

    { "records": [ { "recordId": "...", "result": "...", "data": "..." } ] }
    

    需确认:

    • recordId完全匹配输入事件中的对应值,不能修改或遗漏
    • result只能取Ok、Dropped、ProcessingFailed三者之一
    • data必须是Base64编码的二进制数据,不能直接返回原始AVRO字节或字符串
  • 拆解验证Lambda输出细节
    不要仅依赖“输出看似正常”的判断,将测试事件的输出完整导出检查:

    • 是否存在缺失字段(比如漏写records数组,或单个record中缺少result/data)
    • data字段是否为标准Base64编码字符串,而非字节数组直接toString的乱码结果
    • 输出的record数量与输入是否一致,无多生成或漏处理情况
  • 排查AVRO转换与编码逻辑
    针对你的AVRO格式转换逻辑,需确认:

    • 转换后的AVRO字节数组生成正常,无空指针、数据截断问题
    • Java中使用Base64.getEncoder().encodeToString(avroBytes)完成编码,避免自定义编码导致格式错误
  • 查看Firehose详细错误日志
    登录AWS控制台,进入对应Firehose数据流的监控面板,或查看CloudWatch中Firehose的日志组,里面会包含具体错误原因,比如字段不合法、数据长度异常等信息

  • 最小化场景测试定位问题
    先简化Lambda逻辑,返回硬编码的合规输出(例如固定recordId、Ok结果、Base64编码的测试字符串),验证Firehose是否能正常接收。确认没问题后,再逐步恢复AVRO转换逻辑,定位异常环节

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:22:03