2

现在的情况:

Clojure 代码 -> Amazonica -> AWS Java SDK -> 后台进程中通过 HTTP 的独立 DynamoDBLocal.jar。

期望的情况:

Clojure 代码 -> Amazonica -> AWS Java SDK -> In-process DynamoDB local

我设法让进程内 DynamoDB 工作,我可以列出表(见下文),但我不知道如何连接到它。

我尝试查看 AWS Java SDK 文档和示例。蟋蟀。

Amazonica文档仅显示该:endpoint "http://localhost:8000"选项(我目前正在使用它)。

Cognitect 的 AWS API似乎也仅通过 :endpoint-override 支持 HTTP 版本。

我正在努力实现的目标是可能的吗?

这是我到目前为止的代码:

(import '(com.amazonaws.services.dynamodbv2.local.embedded DynamoDBEmbedded))
(.. DynamoDBEmbedded create amazonDynamoDB listTables)
=> #object[com.amazonaws.services.dynamodbv2.model.ListTablesResult 
   0x712e68f7 "{TableNames: [],}"]

除了依赖项本身之外,我还必须将以下内容添加到 deps.edn 中的别名中

:jvm-opts ["-Djava.library.path=./DynamoDBLocal_lib"]

其中 DynamoDBLocal_lib 包含本机库:libsqlite4java-osx.dylib / libsqlite4java-linux-amd64.so / sqlite4java-win32-x64.dll

PS 我不想使用 Docker

4

1 回答 1

0

你试过DynamoDBEmbedded吗?

AmazonDynamoDB dynamodb = DynamoDBEmbedded.create().amazonDynamoDB();

for(String table : dynamodb.listTables().getTableNames()) {
    System.out.println(table);
}

dynamodb.shutdown();

你可以在 GitHub 上的repo中找到一个傻瓜代码列表。aws-dynamodb-examples这是另一个包含代码示例博客文章。

于 2019-07-29T15:55:28.080 回答