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

Redpanda Connect无法反序列化SQS转义消息致DynamoDB字段为空

解决Redpanda Connect解析SQS转义JSON为空的问题

问题核心是你收到的SQS消息是SNS通知格式,其中Message字段是被反斜杠转义的JSON字符串,当前配置直接从根节点读取Info等字段,但这些字段实际嵌套在Message的转义内容里,自然取不到值,导致写入DynamoDB全是空。

解决方法是先把Message字段里的转义JSON解析成正常的JSON对象,再从里面提取数据,修改后的完整配置如下:

input:
  aws_sqs:
    url: ${SQS_QUEUE_URL}
    region: eu-west-1

pipeline:
  processors:
    - log:
        level: DEBUG
        message: "Raw input: ${!content()}"

    # 关键:解析Message字段的转义字符串为JSON对象
    - json_parser:
        path: Message
        parse_mode: loose # 兼容非严格JSON格式(比如示例里的前导零数字)

    - log:
        level: INFO
        fields_mapping: |
          # 路径改为this.Message.Info,因为Message已被解析为对象
          root.name = this.Message.Info.Name
          root.phone = this.Message.Info.PhoneNumber
          root.branchName = this.Message.Info.BrandName
          root.timeZone = this.Message.Info.TimeZone
          root.street = this.Message.Info.Address.FirstLine
          root.postalCode = this.Message.Info.Address.Postcode
          root.city = this.Message.Info.Address.City
          root.latitude = this.Message.Info.Address.Location.Lat
          root.longitude = this.Message.Info.Address.Location.Lng
        message: "Processing input"

    # 可选:移除不需要的SNS元数据字段,减少冗余
    - remove_fields:
        fields: [Type, MessageId, TopicArn, Subject]

output:
  aws_dynamodb:
    table: ${DYNAMODB_TABLE}
    batching:
      count: 10
      period: 1s
    json_map_columns:
      "": .
    region: eu-west-1

logger:
  level: DEBUG

关键修改说明

  • json_parser处理器:指定path: Message后,会将该字段的转义字符串解析为嵌套JSON对象,让后续处理器能正常访问里面的业务数据。parse_mode: loose用于兼容示例里的前导零数字(非严格JSON规范),如果你的消息格式完全符合JSON标准,可改为strict模式。
  • 字段映射路径调整:所有从this.Info开头的路径必须改为this.Message.Info,因为解析后Message已从字符串变为包含业务数据的对象。
  • 可选的remove_fields:如果不需要SNS通知的顶层元数据(如Type、MessageId等),可以用这个处理器删掉,避免写入DynamoDB时存储冗余数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:41:02