我在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使用时,表格确实存在于dynamodb上....?
答案 0 :(得分:2)
我在另一个问题中回答了这个问题: https://stackoverflow.com/a/40806393/1061798
检查您的码头工人如何启动Dyanmo。如果您正在使用deangiberson / aws-dynamodb-local(就像我一样),那么您需要更改启动参数以添加-sharedDb。修改Dockerfile或运行如下:
docker run -p 8000:8000 -d -it deangiberson/aws-dynamodb-local "-sharedDb"
我还没有测试过,所以请告诉我这是否有用,但希望你能得到这个想法。