是否可以在 amazon kinesis Consumer Library v2 中禁用 SSL 证书检查?

Sam*_*m B 3 java amazon-dynamodb amazon-kinesis aws-sdk localstack

使用 Kinesis Consumer Library 版本 2 开发 Kinesis Consumer 并将 Dynamo DB 端点覆盖为 localstack 端点时,由于 SSL 握手错误,库无法创建租赁表。

我可以确认使用 AWS 的 Dynamo DB 时创建表成功,但是一旦我将端点 url 覆盖为 localstack url,Dynamo DB 客户端在多次重试后就无法创建租赁表。堆栈跟踪不是很有用,但 Wireshark 显示了所有 SSL 握手错误,因此我只能假设 Amazon SDK 不接受 localstack 证书。我找不到任何关于如何使用该software.amazon.awssdk包禁用证书验证的内容。

Region region = Region.of("us-east-1");
DefaultCredentialsProvider credentialsProvider = DefaultCredentialsProvider.create();
DynamoDbAsyncClient dynamoClient = DynamoDbAsyncClient.builder()
    .region(region)
    .endpointOverride(URI.create("https://localhost:4569"))
    .credentialsProvider(credentialsProvider)
    .build();
Run Code Online (Sandbox Code Playgroud)

/edit 这基于此处找到的 Amazon 示例: https: //docs.aws.amazon.com/streams/latest/dev/kcl2-standard-consumer-java-example.html

小智 7

在 kotlin 中,我设置一个这样的环境变量:

System.setProperty(SDKGlobalConfiguration.DISABLE_CERT_CHECKING_SYSTEM_PROPERTY, "true");
Run Code Online (Sandbox Code Playgroud)

这将允许您将 localstack 用于 DynamoDB,事实上,这正是我设置上述环境变量的原因。

更多环境变量可以在aws-java-sdk github 存储库中找到

  • 以上解决方案适用于 SDK 版本 1。 (2认同)