简体   繁体   English

将 AWS Dax 客户端连接到 localstack DynamoDB?

[英]Connect AWS Dax Client to localstack DynamoDB?

I am attempting to use the AWS DaxClient to connect to a localstack setup running DynamoDB.我正在尝试使用 AWS DaxClient 连接到运行 DynamoDB 的本地堆栈设置。

I start localstack from the docker-compose file in their github repo here .我从这里的 github repo 中的 docker-compose 文件开始 localstack。

Then I try creating a Dax Client in Java code and pointing it to that然后我尝试在 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();

    }
}

However I'm getting the following exception:但是我收到以下异常:

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

I know I'm able to connect to localstack using a normal DynamoDb client created like this:我知道我可以使用这样创建的普通 DynamoDb 客户端连接到 localstack:

AmazonDynamoDBClientBuilder
                .standard()
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:4566/", "us-east-1"))
                .build();

So not really sure where to go next.所以不太确定下一步 go 在哪里。 Is it possible to use DAX client to connect to DynamoDB localstack?是否可以使用 DAX 客户端连接到 DynamoDB localstack?

No, localstack does not support it yet.不,localstack 还不支持它。 There is an open issue about it on github ( https://github.com/localstack/localstack/issues/3707 ). github ( https://github.com/localstack/localstack/issues/3707 ) 上有一个未解决的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM