Я пытаюсь поместить запись в Kinesis с помощью следующего фрагмента кода:
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);
Но в журнале появляется следующая ошибка:
Unable to unmarshall exception response with the unmarshallers provided (Service: AmazonKinesis; Status Code: 502; Error Code: null; Request ID: null)
В моем pom.xml соответствующие зависимости следующие:
<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>
Я понятия не имею, как это исправить. Может ли кто-нибудь помочь?
ИЗМЕНИТЬ:
Я запускаю Kinesis через localstack. На стороне localstack я получаю следующую ошибку:
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
В этом контексте я прошел через это: Получение кода состояния AmazonKinesisException: 502 при использовании LocalStack из Java
После этого я внес следующие изменения:
Добавлен
export AWS_CBOR_DISABLE=true
в .bash_profileВ ~ / .aws / config добавлена следующая строка:
cborEnabled = ложь
Даже после этого я продолжаю получать ту же ошибку.