我需要查询DynamoDB。
目前我已经制作了这段代码:
AWSCredentials creds = new DefaultAWSCredentialsProviderChain().getCredentials();
AmazonDynamoDBClient client = new AmazonDynamoDBClient(creds);
client.withRegion(Regions.US_WEST_2);
DynamoDB dynamoDB = new DynamoDB(new AmazonDynamoDBClient(creds));
Table table = dynamoDB.getTable("dev");
QuerySpec spec = new QuerySpec().withKeyConditionExpression("tableKey = :none.json");
ItemCollection<QueryOutcome> items = table.query(spec);
System.out.println(table);
table
的返回值为:{dev: null}
,表示该描述为空。
重要的是,当我使用AWS CLI使用此命令时:aws dynamodb list-tables
我得到了所有表的结果,所以如果我也对我的代码进行相同的操作{{1正在检索空列表。
有什么我做错了吗? 在使用DDB API之前,是否需要定义更多凭据?
答案 0 :(得分:1)
我遇到了同样的问题,来到这里寻找解决方案。如 getDescription 的 javadoc 中所述
<块引用>返回表描述;如果表描述有,则为 null 尚未通过 {@link #describe()} 进行描述。没有网络电话。
最初的描述设置为空。在第一次调用 describe() 之后,进行网络调用,描述被设置,之后可以使用 getDescription。