如何列出本地Docker部署的DynamoDB容器内的所有访问凭证?
DynamoDB Local 凭证隔离说明
你观察到的不同AWS_ACCESS_KEY_ID下表不可见的现象,是DynamoDB Local的默认逻辑:它会将AWS_ACCESS_KEY_ID + 配置的区域作为独立命名空间,不同命名空间下的表数据完全隔离,互不干扰。
查看实例下所有存在的AWS_ACCESS_KEY_ID的方法
DynamoDB Local 1.16.0版本默认将所有数据存在容器内/home/dynamodblocal目录下,你可以通过以下两种方式获取所有使用过的凭证:
直接读取底层存储目录
- 先进入运行中的DynamoDB容器:
docker exec -it <你的dynamodb容器ID或容器名> sh- 进入数据存储目录:
cd /home/dynamodblocal- 列出当前目录下的所有文件和文件夹:
ls该目录下的表存储目录命名规则为
<AWS_ACCESS_KEY_ID>_<区域名>,目录名中下划线前的字段就是对应使用过的AWS_ACCESS_KEY_ID值。比如你之前用AWS_ACCESS_KEY_ID=test、区域local-env创建表,就会看到名为test_local-env的目录。
如果你启动容器时已经将本地目录挂载到容器的/home/dynamodblocal路径做数据持久化,直接在本地挂载目录下执行ls就能看到所有命名空间目录,不需要进入容器。关闭命名空间隔离查看全量表
如果你不需要隔离逻辑,可以在启动DynamoDB Local时添加-sharedDb启动参数,关闭按凭证、区域隔离的特性,之后无论传入什么AWS_ACCESS_KEY_ID和区域参数,都能看到实例上的所有表。
修改后的docker-compose配置如下:version: "3.8" services: dbs: image: amazon/dynamodb-local:1.16.0 command: "-jar DynamoDBLocal.jar -sharedDb" ports: - '8000:8000'
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

