我在Docker容器上运行Dynamodb,并且能够使用Python boto3写入表,这很好。
现在,当我使用 aws CLI 从容器外部查询 dynamodb 表时,它会给出此错误并且找不到该表
╰─➤ aws dynamodb --region=eu-west-1 --endpoint-url http://localhost:8000 scan --table-name devApiConfig
A client error (ResourceNotFoundException) occurred when calling the Scan operation: Cannot do operations on a non-existent table
由 DynamoDB Docker 容器创建的 SQLite 数据库的名称为
localaccesskey_eu-west-1.db
aws --region=eu-west-1 dynamodb list-tables --endpoint-url http://localhost:8000
{
"TableNames": []
}
任何想法或提示,因为从 Boto3 使用时,发电机上确实存在表格......?
我在另一个问题中回答了这个问题:https://stackoverflow.com/a/40806393/1061798
检查您的 docker 如何启动 Dyanmo。如果您使用的是deangiberson/aws-dynamodb-local(就像我一样),那么您需要更改启动参数以添加-sharedDb。修改 Dockerfile 或按如下方式运行:
docker run -p 8000:8000 -d -it deangiberson/aws-dynamodb-local "-sharedDb"
我还没有测试过,所以如果这不起作用,请告诉我,但希望你明白了。