.NET中配置AWS Lambda MSK触发器时如何正确反序列化Kafka消息Value?
.NET开发AWS Lambda绑定MSK触发器时的Kafka消息反序列化异常
基于.NET开发绑定MSK触发器的AWS Lambda函数时,需要反序列化Kafka消息的Value字段以还原原始业务内容,但始终找不到适配的反序列化器。目前收到的Kafka消息Value原始Base64编码内容为:
AAAAAAKWBQACDkdMIE5hbWUgc3QuIEhlcm9pdiBQcmFjaRpiLjI4LCBhcHAuMTUwDktoYXJraXYES0gKODU0MzQSMDk4NDMyMzIzAK61xYSfXgIKMTE6MzICDFRSMTIzMghLeWl2
已尝试的解码逻辑
尝试通过以下流程获取反序列化内容:先将Base64字符串解码为字节数组,再直接按UTF-8编码转成字符串,对应实现代码为:
var bytes = Convert.FromBase64String("AAAAAAKWBQACDkdMIE5hbWUgc3QuIEhlcm9pdiBQcmFjaRpiLjI4LCBhcHAuMTUwDktoYXJraXYES0gKODU0MzQSMDk4NDMyMzIzAK61xYSfXgIKMTE6MzICDFRSMTIzMghLeWl2"); var jsonBack = Encoding.UTF8.GetString(bytes);
当前遇到的问题
- 该方式仅能解码出部分可读文本,输出结果夹杂大量无意义冗余符号,无法得到完整的原始业务数据
- 未查询到该序列化格式的对应公开文档,无法梳理清楚二进制消息的内部结构
- 查阅AWS官方给出的MSK事件负载示例时,文档未说明MSK事件负载中消息Key、Value字段的实际存储内容与编码格式,参考示例截图如下:

希望了解是否有其他.NET环境下的开发者在使用AWS Lambda的MSK触发器时遇到过同类问题,以及对应的解决思路。
内容的提问来源于stack exchange,提问作者Tie Kapch
相关产品推荐
相关产品推荐

