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

Lambda处理Kinesis事件正常却被调用4次的问题排查

Lambda处理Kinesis事件重复调用+响应语法无效问题分析

核心原因

PROBLEM: Function response syntax is invalid. Please check function implementation. 这个提示说明Lambda返回给Kinesis事件源的响应格式不符合AWS规范——哪怕你的业务逻辑执行成功,Kinesis仍会判定该批次处理失败,触发3次重试,最终导致总共4次调用(1次初始调用+3次重试)。

具体问题场景

Kinesis作为Lambda事件源时,要求Lambda必须返回特定格式的JSON响应,用于告知哪些记录处理成功/失败。常见的格式错误包括:

  • 函数未返回任何内容(比如没有return语句,返回null或undefined)
  • 返回非JSON格式的内容(比如直接返回字符串、数字)
  • JSON格式不合法:拼写错误(如batchItemFailure而非batchItemFailures)、缺少必要字段、数组结构错误

正确的响应格式示例:

  • 所有记录处理成功时:
    {
      "batchItemFailures": []
    }
    
  • 部分记录处理失败时(仅返回失败记录的sequenceNumber):
    {
      "batchItemFailures": [
        {"itemIdentifier": "你的Kinesis记录sequenceNumber"}
      ]
    }
    

解决步骤

  1. 检查Lambda函数的返回逻辑,确保返回符合上述要求的JSON结构
  2. 验证返回的JSON语法正确性,可通过Lambda执行日志查看实际返回内容
  3. 重新部署修正后的函数,执行aws lambda list-event-source-mappings命令确认LastProcessingResult状态恢复正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:52:02