当前位置: 首页 > 知识库问答 >
问题:

Amazon SNS->SQS消息正文

督俊雅
2023-03-14

我正在从SNS主题向SQS发送消息。当我在客户机上检查SQS消息的正文时,整个消息元数据都是在SQS正文中发送的。

    BenFlowers {
  "Type" : "Notification",
  "MessageId" : "84102bd5-8890-4ed5-aeba-c15fafc926dc",
  "TopicArn" : "arn:aws:sns:eu-west-1:534706846367:HelloWorld",
  "Message" : "hello World",
  "Timestamp" : "2012-06-05T13:44:22.360Z",
  "SignatureVersion" : "1",
  "Signature" : "Qzh0qXhijBKylaFwc9PGE+lQQDwHGWkIzCW2Ld1eVrxNfSem4yyBTgouqGX26V0m1qhFD4RQcBzE3oNqx5jFhJfV4hN45FNcsFVnmfLPGNUTmJWblSk8f6znWgTy8UtK9xrTeNYzK59k3VJ4WTJ5kCEj+2vH7sBV15fAXeCAtdQ=",
  "SigningCertURL" : "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
  "UnsubscribeURL" : "https://sns.eu-west-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:eu-west-1:534706846367:HelloWorld:8a3acde2-cb0b-4a56-9b9c-b75ed7307556"
}

这有点烦人,因为我不得不在另一端拆分消息体。速度在这个应用程序中是非常重要的,所以我想消除这一点。有没有办法只从SNS发送消息而忽略其余的元数据?

谢谢,本

共有1个答案

微生令
2023-03-14

SNS最近推出了一个功能,允许你在SNS主题上设置“原始消息传递”。

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

 类似资料:
  • 我有一个SQS队列订阅了一个SNS主题。当我将消息发布到主题并随后从队列中接收到它时,消息体包含我发布的消息,这些消息包装在SNS添加的一些元数据中,如“Amazon SNS->SQS消息体”所示。与这个问题的海报不同,我想要元数据,因为它允许我生成一些延迟度量。 然而,我在亚马逊的文档中或可谷歌网站上的其他地方都找不到任何关于元数据含义的确切解释。在向Amazon SQS队列发送Amazon S

  • 我的Sring引导应用程序监听Amazon SQS队列。现在,我需要实现正确的消息确认--我需要接收一条消息,做一些业务逻辑,只有在此之后,如果成功,我需要ack消息(从队列中删除消息)。例如,如果我的业务逻辑出现错误,消息必须重新排队。 现在我不知道如何从我的听众那里获取信息。

  • 我有一个连接到lambda的队列(fifo)。我想在lambda中向标准队列发送一条消息。但没有发送/接收任何消息。然而,如果我尝试从非SQS连接的lambda(通过AppSync)发送它,它会工作。 我查过: lambda有权发送SQS消息(您可以在那里看到) 由于我已成功地从另一个lambda(非SQS)向标准队列发送消息,因此正确配置了标准队列 SQS URL是否正确 控制台中不会显示任何错

  • 我使用SQS作为视频编码的队列,并希望确保每个视频只执行一次编码。 SQS工作得很好,因为当消息排队时,它只能由单个线程接收。然而,对于相同的视频/编码,可能会向队列发送多条消息,这意味着对于特定的“编码”队列,消息内容将是相同的。 是否需要消除重复以确保对于特定队列,队列中的消息或从队列接收的消息是唯一的? 我想的一个选择是在消息发送时为每种编码类型创建一个新队列。所以队列可以命名为,它只有一条

  • 我有一个基本的SQS队列,它使用redrive策略触发Lambda,在5次重试后将失败的消息发送到DLQ。我读到Lambda应该在消息中添加关于错误的消息属性 除了在DLQ中查看消息时,我没有看到任何来自Lambda的ErrorCode、ErrorMessage属性外,其他一切都正常工作。有人用这个吗?

  • 我试图写一个请求从我的服务器获取消息在使用签名,消息看起来像这样, POST/134148934511/Localhost/?Action=ReceiveMessage 但我收到了一条错误消息(尽管我拥有所需的权限)。(我确信aws版本4的签名过程是正确的(通过S3检查))我做错了什么?