Вы можете просто вернуть PutRecordsRequest
из вашего @StreamListener
и настроить .producer.useNativeEncoding = true
для цели привязки вывода.Таким образом, результат @StreamListener
не будет преобразован в byte[]
, и это станет обязанностью KinesisMessageHandler
для правильной обработки этой PutRecordsRequest
полезной нагрузки.И это теперь возможно:
if (message.getPayload() instanceof PutRecordsRequest) {
AsyncHandler<PutRecordsRequest, PutRecordsResult> asyncHandler =
obtainAsyncHandler(message, (PutRecordsRequest) message.getPayload());
return this.amazonKinesis.putRecordsAsync((PutRecordsRequest) message.getPayload(), asyncHandler);
}