2

我有一个订阅 SNS 主题的 AWS SQS 队列。我从 SQS 队列收到的消息如下所示:

Message body: {
  "Type" : "Notification",
  "MessageId" : "6ffbe51a-5c00-51f8-a67e-b468ad721131",
  "TopicArn" : "arn:aws:sns:eu-central-1:447379608829:dev_com_pio_admin_package",
  "Message" : "CUSTOM_JSON_OBJECT",
  "Timestamp" : "2017-04-20T17:26:10.410Z",
  "SignatureVersion" : "1",
  "Signature" : "iLDcSwI5CJ.....==",
  "SigningCertURL" : "https://sns.eu-central-1.amazonaws.com/...............",
  "UnsubscribeURL" : "https://sns.eu-central-1.amazonaws.com/..............."
}

是否有一个 Java 代表这种消息 inSpring Cloud AWS或 in AWS java SDK

4

3 回答 3

0

使用 Object(表示消息)中的注解 @NotificationMessage 作为监听器。

于 2018-07-13T12:38:24.043 回答
0

那是消息的 json 表示。将其转换为 java 对象的最简单方法可能是gson

于 2017-04-21T13:30:51.010 回答
0
    @SqsListener("spring-boot-sqs")
public void getProductoFromSQS(String snsMessageJsonFormat) {
    Gson gson = new Gson();
    SNSMessage snsMessage = gson.fromJson(snsMessageJsonFormat, SNSMessage.class);
    Producto producto = gson.fromJson(snsMessage.getMessage(), Producto.class);
    itemservice.save(producto);
}

@Getter
@Setter
public class SNSMessage {
    private String Type;
    private String MessageId;
    private String TopicArn;
    private String Message;

}

您如何看到需要对 Java 类 SNSMessage 建模

获取字符串消息并使用 Gson 转换为适当的对象。:)

于 2020-05-25T04:11:36.140 回答