amazon-dynamodb - 将 AWS Dax 客户端连接到 localstack DynamoDB?
问题描述
我正在尝试使用 AWS DaxClient 连接到运行 DynamoDB 的本地堆栈设置。
我从这里的 github 存储库中的 docker-compose 文件启动 localstack 。
然后我尝试在 Java 代码中创建一个 Dax 客户端并将其指向
public class PlainJavaClass {
static AmazonDynamoDB daxClient;
public static void main(String[] args) throws Exception {
AmazonDaxClientBuilder daxClientBuilder = AmazonDaxClientBuilder.standard();
daxClientBuilder.withRegion("us-east-1").withEndpointConfiguration("localhost:4566");
daxClient = daxClientBuilder.build();
}
}
但是我收到以下异常:
12:36:53.713 [main] WARN com.amazon.dax.client.dynamodbv2.ClusterDaxClient - exception starting up cluster client: java.io.IOException: failed to configure cluster endpoints from hosts: [localhost:4566]
java.io.IOException: failed to configure cluster endpoints from hosts: [localhost:4566]
at com.amazon.dax.client.cluster.Source$AutoconfSource.pull(Source.java:127)
at com.amazon.dax.client.cluster.Source$AutoconfSource.update(Source.java:59)
at com.amazon.dax.client.cluster.Source$AutoconfSource.refresh(Source.java:50)
at com.amazon.dax.client.cluster.Cluster.refresh(Cluster.java:426)
at com.amazon.dax.client.cluster.Cluster.refresh(Cluster.java:409)
at com.amazon.dax.client.cluster.Cluster.startup(Cluster.java:330)
at com.amazon.dax.client.cluster.Cluster.startup(Cluster.java:263)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.<init>(ClusterDaxClient.java:148)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.<init>(ClusterDaxClient.java:119)
at com.amazon.dax.client.dynamodbv2.AmazonDaxClientBuilder.build(AmazonDaxClientBuilder.java:34)
at com.example.crudspringbootdynamodb.PlainJavaClass.createDaxClient(PlainJavaClass.java:30)
at com.example.crudspringbootdynamodb.PlainJavaClass.main(PlainJavaClass.java:50)
Caused by: com.amazon.cbor.EndOfStreamException: null
at com.amazon.cbor.CborInputStream.readObject(CborInputStream.java:1340)
at com.amazon.dax.client.exceptions.DaxServiceException.pickException(DaxServiceException.java:44)
at com.amazon.dax.client.generated.DaxClientStubs.handleResponse(DaxClientStubs.java:963)
at com.amazon.dax.client.generated.DaxClientStubs.endpoints_455855874_1(DaxClientStubs.java:479)
at com.amazon.dax.client.dynamodbv2.DaxClient.endpoints(DaxClient.java:2375)
at com.amazon.dax.client.cluster.Source$AutoconfSource.pullFrom(Source.java:137)
at com.amazon.dax.client.cluster.Source$AutoconfSource.pull(Source.java:105)
... 11 common frames omitted
Suppressed: com.amazon.cbor.EndOfStreamException: null
... 18 common frames omitted
我知道我可以使用这样创建的普通 DynamoDb 客户端连接到 localstack:
AmazonDynamoDBClientBuilder
.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:4566/", "us-east-1"))
.build();
所以不太确定下一步该去哪里。是否可以使用 DAX 客户端连接到 DynamoDB localstack?
解决方案
推荐阅读
- python - 如何解决 Json 错误:TypeError:需要类似字节的对象,而不是“str”
- python - 在bs4中使用.text时没有得到json
- python - TensorFlow 多对一 RNN 时间序列
- c++ - 在vscode for c++中使用sqlite3(undefined reference to `xxx')(我有使用-lsqlite3)
- mongodb - 为什么mongodb会找到这个文档($ne: null for array)
- file - 下载 2 个文件 Spring Batch Step
- javascript - 我可以将 js 文件与 jsx 文件链接吗?只对前面做出反应(不反应本机)
- shopify - Shopify:如何将自定义字段添加到管理员博客创建页面?
- python - 如何在 NIFI 中对 json 响应应用条件
- c++ - 将 OpenCV-Matrix 转换为向量