Получение кода состояния AmazonKinesisException: 502 при использовании LocalStack из Java

Я пишу интеграционные тесты с помощью LocalStack, чтобы имитировать мои вызовы Kinesis. Я создал клиент Kinesis, но когда пытаюсь поместить записи в Kinesis, я получаю сообщение об ошибке:

com.amazonaws.services.kinesis.model.AmazonKinesisException: null (Service: AmazonKinesis; Status Code: 502; Error Code: null; Request ID: null)

Я пробовал отключить CBOR и проверку сертификатов следующим образом:

System.setProperty(SDKGlobalConfiguration.DISABLE_CERT_CHECKING_SYSTEM_PROPERTY, "false");

System.setProperty (SDKGlobalConfiguration.AWS_CBOR_DISABLE_SYSTEM_PROPERTY, «истина»);

Я строю клиента так:

.withEndpointConfiguration(localstack.getEndpointConfiguration(LocalStackContainer.Service.KINESIS))
.withCredentials(localstack.getDefaultCredentialsProvider())
.build()

Я каждый раз получаю 502 балла. На S3 все работает нормально, у меня проблемы только с сервисом Kinesis. Кто-нибудь видел что-нибудь подобное?


person Melvin    schedule 10.06.2019    source источник
comment
В следующем сообщении описывается, как настроить тестовый env kinesis + DynamoDB: stackoverflow.com/a/60190352/9361998   -  person alessiosavi    schedule 12.02.2020


Ответы (1)


У меня была аналогичная проблема при локальном подключении Kinesis через localstack. Я использовал java-библиотеку v2 SDK.

Основная причина

По умолчанию кинезалит не поддерживает CBOR и должен быть отключен, чтобы он работал. Интернет переполнен флагами для отключения CBOR, но ни один из них у меня не работал.

Вам нужно сделать две вещи:

  1. Задайте переменную среды AWS_CBOR_DISABLE=true, чтобы localstack прекратил использование
  2. Задайте переменную среды aws.cborEnabled=false, чтобы AWS SDK прекратил ее использование.

В моем случае я застрял с флагом SDK, который упоминается в software.amazon.awssdk.core.SdkSystemSetting

person Rites    schedule 03.07.2019