3

我正在使用 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, "true");

我以这种方式构建客户端:

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

我每次都收到502。S3 一切正常,只是 Kinesis 服务给我带来了麻烦。有没有人见过这样的事情?

4

1 回答 1

9

我在本地通过 localstack 连接 Kinesis 时遇到了类似的问题。我使用的是 v2 SDK java 库。

根本原因

默认情况下,kinesalite 不支持 CBOR,应禁用以使其运行。互联网上充斥着禁用 CBOR 的标志,但没有一个对我有用。

你必须做两件事:

  1. 设置环境变量以AWS_CBOR_DISABLE=true告诉localstack停止使用
  2. 设置 environment varaws.cborEnabled=false以告诉AWS SDK停止使用它。

就我而言,我被困在了 SDK 标志中software.amazon.awssdk.core.SdkSystemSetting

于 2019-07-03T10:17:06.497 回答