AWS MSK与Lambda事件源映射(ESM)触发异常排查咨询
MSK Event Source Mapping(ESM)触发器停止工作的排查调试步骤
检查消费者组状态
找到Lambda ESM对应的消费者组(格式通常为aws-lambda-<函数名>-<ESM UUID>),用MSK控制台或kafka-consumer-groups.sh命令查看状态:kafka-consumer-groups.sh --describe --group <消费者组名> --bootstrap-server <MSK集群引导地址>重点核对
CURRENT-OFFSET与LOG-END-OFFSET的差值:若差值大但无消费动作,说明消费者未拉取消息;若offset无变化,大概率是消费流程卡住。验证权限配置
- 检查Lambda执行角色的权限,确认仍持有
kafka:DescribeCluster、kafka:GetBootstrapBrokers、kafka:ListTopics、kafka:ReadDataFromTopic等必要权限,排查是否有近期权限变更导致权限被撤销。 - 若MSK采用IAM客户端认证,确认集群的IAM策略是否允许Lambda执行角色的访问请求。
- 检查Lambda执行角色的权限,确认仍持有
排查网络连通性
- 核对Lambda与MSK集群的安全组配置:Lambda安全组需允许出站访问MSK的9092(明文)或9094(TLS)端口;MSK集群安全组需允许来自Lambda安全组的入站连接。
- 若MSK部署在私有网络,检查路由表配置,确保Lambda能正常解析并访问MSK的引导Broker地址。
修复消费者组Offset问题
若消费者组的Offset指向已被删除的消息(超过主题保留期),Lambda会无法拉取消息。可重置Offset到最新或最早位置:kafka-consumer-groups.sh --reset-offsets --to-latest --group <消费者组名> --topic <主题名> --execute --bootstrap-server <MSK集群引导地址>检查Lambda函数状态与并发限制
- 查看Lambda控制台的“并发”配置,确认是否因并发上限打满或预留并发设置导致无法分配实例处理消息。
- 手动测试调用Lambda函数,确认函数本身未被禁用或存在执行错误(即使无消费日志,函数本身的可用性也需验证)。
监控MSK集群健康状态
- 查看CloudWatch中MSK的监控指标,重点关注
UnderReplicatedPartitions(副本同步异常)、BrokerCount(Broker在线数量)等指标,确认集群无Broker宕机或分区离线情况。 - 检查MSK Broker日志,排查是否存在消费者连接失败、认证拒绝等相关错误。
- 查看CloudWatch中MSK的监控指标,重点关注
重新创建ESM触发器
若以上排查均无结果,尝试删除现有ESM并重新创建。部分场景下ESM元数据异常会导致消费停滞,重新创建可解决此类问题,注意保持配置与原触发器一致(批量大小、起始位置、主题名等)。
内容的提问来源于stack exchange,提问作者Jake Boomgaarden
相关产品推荐
相关产品推荐

