gpt4 book ai didi

java - 如何让本地 dynamodb 运行以便我的 java 应用程序可以与其连接?

转载 作者:行者123 更新时间:2023-12-02 01:38:11 29 4
gpt4 key购买 nike

我查看了几篇 stackoverflow 帖子以及 dynamodb 的 AWS 文档来回答这个问题。我希望能够在 docker 中运行本地 dynamodb,然后从本地运行的 java 应用程序连接到它。我已经安装了 amazon/dynamodb-local 镜像并使其正常工作。我什至使用 aws cli 在这个本地运行的 dynamodb 上创建表、列出表、删除表等。我在 java 项目中安装了 dynamodb sdk 依赖项,我感觉我已经将所有内容都连接起来工作,运行了集成测试,然后我收到了此错误消息

com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException: Cannot do operations on a non-existent table (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: c915ea26-008e-4a9f-8b99-6df5d6aa7c5f)

当使用 aws cli 运行 list-tables 函数时,该表确实存在,所以我用 google 搜索,然后检查了文档 dynamodb docs看来你必须用一个标志启动本地 dynamodb

-sharedDb

我尝试使用此命令启动本地运行的 dynamodb

docker run -p 8000:8000 amazon/dynamodb-local -sharedDb

虽然我得到了错误

Unrecognized option: -sharedDb Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

在此之后我尝试过谷歌搜索或寻找遇到类似问题的人。但我什么也没找到。 如何启动本地运行的 dynamodb 并从本地运行的 java 应用程序连接到它?

最佳答案

你需要这样写命令

docker run -p 8000:8000 amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb

Don't forget that you might need to mount a volume in order to keep the data on the host as using the above command wont make the data saved if you have removed the container and to do this you need to use -v flag

docker run -p 8000:8000 -v /path/to/data/locally:/data/ amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -dbPath /data

有关可以使用的更多选项(请注意 --rm 标志)

docker run --rm -p 8000:8000 amazon/dynamodb-local -jar DynamoDBLocal.jar -help

关于java - 如何让本地 dynamodb 运行以便我的 java 应用程序可以与其连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54878589/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com