连接到 DynamoDB Docker 时无法使用 NoSQL Workbench for DynamoDB 找到表

Den*_*boy 8 amazon-web-services nosql amazon-dynamodb docker

我已经在 Docker 中启动了 DynamoDB:

docker run --network xxx --name dynamodb -d -p 8000:8000 amazon/dynamodb-local
Run Code Online (Sandbox Code Playgroud)

我创建了一个表:

aws dynamodb create-table --table-name test --attribute-definitions \
AttributeName=UUID,AttributeType=S \
--key-schema AttributeName=UUID,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 --endpoint-url http://localhost:8000
Run Code Online (Sandbox Code Playgroud)

列出表:

aws dynamodb list-tables --endpoint-url http://localhost:8000
{
    "TableNames": [
        "test"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我可以使用localhost:8000. 现在我已经为 Amazon DynamoDB 安装了 NoSQL Workbench。我检查了操作构建器并添加了本地 dynamoDB 的连接。我已经搜索了表格(测试),但我找不到任何东西?我究竟做错了什么?

And*_*IDK 13

使其工作的关键是使用-sharedDB标志,详细信息见此处

不幸的是,只添加一个键会导致容器在启动后立即退出,我相信原因是通过提供一个标志它会覆盖所有标准的标志。

为了避免这个问题,我只提供所有标准的并且它有效:

docker run -p 8000:8000 -d amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -dbPath .
Run Code Online (Sandbox Code Playgroud)

有了docker-compose你可以做同样的,如下所示:

version: '3'
services:
  local-dynamo:
    image: amazon/dynamodb-local
    command: -jar DynamoDBLocal.jar -sharedDb -dbPath .
    ports:
      - "8000:8000"
Run Code Online (Sandbox Code Playgroud)

  • 添加“-sharedDb”参数为我完成了这项工作。 (2认同)