I am trying to put a record in Kinesis with the following code snipper:
AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard();
clientBuilder.setCredentials(new EnvironmentVariableCredentialsProvider());
clientBuilder.setEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
"http://localhost:4568",
Regions.US_WEST_2.getName()));
AmazonKinesis kinesisClient = clientBuilder.build();
PutRecordRequest putRecordRequest = new PutRecordRequest();
putRecordRequest.setStreamName("test");
putRecordRequest.setData(ByteBuffer.wrap(String.format("testData-%d", 1).getBytes()));
putRecordRequest.setPartitionKey(String.format("partitionKey-%d", 1));
kinesisClient.putRecord(putRecordRequest);
But, I am getting the following error in the log:
Unable to unmarshall exception response with the unmarshallers provided (Service: AmazonKinesis; Status Code: 502; Error Code: null; Request ID: null)
In my pom.xml, relevant dependencies are as follows:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hppc</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-afterburner</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-kinesis</artifactId>
<version>1.11.863</version>
</dependency>
I have no idea regarding how to fix this. Could anyone please help ?
EDIT:
I am running Kinesis through localstack. In localstack side, I am getting following error:
2020-09-17T14:34:42:ERROR:localstack.services.generic_proxy: Error forwarding request: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte Traceback (most recent call last):
File "/opt/code/localstack/localstack/services/generic_proxy.py", line 247, in forward
listener_result = listener.forward_request(method=method,
File "/opt/code/localstack/localstack/services/kinesis/kinesis_listener.py", line 28, in forward_request
data = json.loads(to_str(data or '{}'))
File "/opt/code/localstack/localstack/utils/common.py", line 735, in to_str
return obj.decode(encoding, errors) if isinstance(obj, six.binary_type) else obj
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
In this conext, I have gone through this: Getting an AmazonKinesisException Status Code: 502 when using LocalStack from Java
Following this I have done following changes:
Added
export AWS_CBOR_DISABLE=true
in .bash_profileAdded following line in ~/.aws/config:
cborEnabled = false
Even after this, I keep getting same error.