【问题标题】:Parsing SQS message pushed by SNS in Spring Boot在 Spring Boot 中解析 SNS 推送的 SQS 消息
【发布时间】:2020-10-20 05:10:55
【问题描述】:

我目前正在使用 SNS 将消息扇出到几个 SQS 队列。 尝试解析 SQS 消息并想知道是否有现成的消息模型来解析队列消息正文,因为它是 SNS 通知。

是否有这种开箱即用的模型可用于这种场景? 例如: 对于 S3+SNS 事件 -> com.amazonaws.services.s3.event.S3EventNotification

我检查了 SQS/SNS Java SDK,但找不到类似的东西。 这是否意味着必须在应用程序代码中构建模型才能解析此类消息体?

例如: 在下面的示例队列消息中,“正文”部分是一个 SNS 通知,因为我对“正文->“消息”部分感兴趣。“正文”可以解析为开箱即用的 AWS 模型在这种情况下?

{
   "Body": {
      "Type": "Notification",
      "MessageId": "272a7e6b-ea5e-46c3-991f-3563d7cd3f09",
      "Token": null,
      "TopicArn": "arn:aws:sns:us-east-1:000000000000:contact-subscription-topic",
      "Message": {
         "type": "contactSubInstantiationMessage"
      },
      "SubscribeURL": null,
      "Timestamp": "2020-10-20T03:54:14.022Z",
      "SignatureVersion": "1",
      "Signature": "EXAMPLEpH+..",
      "SigningCertURL": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-0000000000000000000000.pem"
   },
   "Attributes": {
      "ApproximateFirstReceiveTimestamp": "1603166057169",
      "SenderId": "AIDAIT2UOQQY3AUEKVGXU",
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1603166054040"
   },
   "ReceiptHandle": "ibetdkwxaxkqzjxhrkqtgtbrneyylminkvatzwcounxxnubhdktzzkdqrgzxqsebrdfuuxpwnhbuyhvrcbrwxbfgvgdekcygsgauxtcmouzzhlyqvaazkpqmvmmpixbhnpfpldlgjzcnkmaupbikegthoqvdmxyjcvetpisdzxpxrtsrtxvpbmyln",
   "MD5OfBody": "9657ff8451167353e3d11c492d99d15f",
   "MessageId": "879b6742-8006-bef5-d233-f7b8c8bb33d7"
}

感谢您对此的看法。 感谢团队!

【问题讨论】:

    标签: amazon-web-services amazon-sqs amazon-sns


    【解决方案1】:

    以下帖子描述了一种通过将订阅的“RawMessageDelivery”设置为“true”来消除上述 SNS 元数据的方法;

    Amazon SNS -> SQS message body

    https://docs.aws.amazon.com/sns/latest/dg/sns-large-payload-raw-message-delivery.html

    将问题标记为已解决。 谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 2020-06-11
      • 2015-09-23
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      相关资源
      最近更新 更多