public static List processMessages()

in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java [66:90]


    public static List<PayloadS3Pointer> processMessages(final List<SQSMessage> records) {
        List<PayloadS3Pointer> s3Pointers = new ArrayList<>();
        for (SQSMessage sqsMessage : records) {
            if (isBodyLargeMessagePointer(sqsMessage.getBody())) {

                PayloadS3Pointer s3Pointer = PayloadS3Pointer.fromJson(sqsMessage.getBody())
                        .orElseThrow(() -> new FailedProcessingLargePayloadException(format("Failed processing SQS body to extract S3 details. [ %s ].", sqsMessage.getBody())));

                ResponseInputStream<GetObjectResponse> s3Object = callS3Gracefully(s3Pointer, pointer -> {
                    ResponseInputStream<GetObjectResponse> response = s3Client().getObject(GetObjectRequest.builder()
                            .bucket(pointer.getS3BucketName())
                            .key(pointer.getS3Key())
                            .build());

                    LOG.debug("Object downloaded with key: " + s3Pointer.getS3Key());
                    return response;
                });

                sqsMessage.setBody(readStringFromS3Object(s3Object, s3Pointer));
                s3Pointers.add(s3Pointer);
            }
        }

        return s3Pointers;
    }