У меня есть AWS лямбда, которая будет запускаться из SNS -> SQS.Это означает, что у меня есть SNS, а затем SQS является абонентом.Затем у меня есть лямбда, запускаемая SQS.
Я построил простую лямбду, как показано ниже
public class EnhancedCanonicalLambdaHandler implements RequestHandler<SQSEvent, String> {
static final Logger log = LogManager.getLogger(EnhancedCanonicalLambdaHandler.class);
static final ObjectMapper objectMapper = new ObjectMapper();
@Override
public String handleRequest(SQSEvent sqsEvent, Context context) {
log.info("There are {} records to be processing ...", sqsEvent.getRecords().size());
for(SQSEvent.SQSMessage msg : sqsEvent.getRecords()) {
// I want to map msg.getBody()
}
}
И у msg.getBody будет json, как показано ниже
{
"Type":"Notification",
"MessageId":"d3056919-1db0-5bcb-b5ce-3df0eb234dd9",
"TopicArn":"arn:aws:sns:us-east-2:enhance-canonical-topic",
"Subject":"nghia do subject",
"Message":"{\n\"groupRuleSourceLocation\" : \"groupRuleSourceLocation\",\n\"canonicalSourceLocation\": \"canonicalSourceLocation\"\n}",
"Timestamp":"2019-02-22T13:08:35.147Z",
"SignatureVersion":"1",
"SigningCertURL":"https://sns.us-east-2.amazonaws.com/.pem",
"UnsubscribeURL":"https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:057351434671:enhance-canonical-topic:",
"MessageAttributes":{}
}
Я хотел бы посмотреть, есть ли у AWS все-таки возможность сопоставить это сообщение тела с уже определенным Pojo?или нам нужно использовать json или mapper для отображения на определяемый нами объект?
Спасибо,