下面列出了怎么用com.amazonaws.services.dynamodbv2.model.ListTablesRequest的API类实例代码及写法,或者点击链接到github查看源代码。
static void listMyTables() {
String lastEvaluatedTableName = null;
do {
ListTablesRequest listTablesRequest = new ListTablesRequest().withLimit(10)
.withExclusiveStartTableName(lastEvaluatedTableName);
ListTablesResult result = client.listTables(listTablesRequest);
lastEvaluatedTableName = result.getLastEvaluatedTableName();
for (String name : result.getTableNames()) {
System.out.println(name);
}
} while (lastEvaluatedTableName != null);
}
static void listMyTables() {
String lastEvaluatedTableName = null;
do {
ListTablesRequest listTablesRequest = new ListTablesRequest()
.withLimit(10)
.withExclusiveStartTableName(lastEvaluatedTableName);
ListTablesResult result = client.listTables(listTablesRequest);
lastEvaluatedTableName = result.getLastEvaluatedTableName();
for (String name : result.getTableNames()) {
System.out.println(name);
}
} while (lastEvaluatedTableName != null);
}
private List<String> listTablesInternal()
throws TimeoutException
{
List<String> tables = new ArrayList<>();
String nextToken = null;
do {
ListTablesRequest ddbRequest = new ListTablesRequest()
.withExclusiveStartTableName(nextToken);
ListTablesResult result = invoker.invoke(() -> ddbClient.listTables(ddbRequest));
tables.addAll(result.getTableNames());
nextToken = result.getLastEvaluatedTableName();
}
while (nextToken != null);
return tables;
}
ListTablesResult listTables(final ListTablesRequest request) throws BackendException {
controlPlaneRateLimiter.acquire();
final Timer.Context apiTimerContext = getTimerContext(listTablesApiName, null /*tableName*/);
ListTablesResult result;
try {
result = client.listTables(request);
} catch (final Exception e) {
throw processDynamoDbApiException(e, LIST_TABLES, null /*tableName*/);
} finally {
apiTimerContext.stop();
}
return result;
}
@Test
public void noSqlTables() {
when(awsClient.createDynamoDbClient(any(AwsCredentialView.class), anyString())).thenReturn(amazonDynamoDB);
when(amazonDynamoDB.listTables(any(ListTablesRequest.class))).thenReturn(
new ListTablesResult().withTableNames("a", "b").withLastEvaluatedTableName("b"),
new ListTablesResult().withTableNames("c", "d")
);
CloudNoSqlTables cloudNoSqlTables = underTest.noSqlTables(new CloudCredential(), region("region"), null);
assertThat(cloudNoSqlTables.getCloudNoSqlTables()).hasSameElementsAs(List.of(
new CloudNoSqlTable("a"),
new CloudNoSqlTable("b"),
new CloudNoSqlTable("c"),
new CloudNoSqlTable("d")));
}
/**
* Fetch dynamo DB tables.
*
* @param temporaryCredentials the temporary credentials
* @param skipRegions the skip regions
* @param accountId the accountId
* @param accountName the account name
* @return the map
*/
public static Map<String,List<DynamoVH>> fetchDynamoDBTables(BasicSessionCredentials temporaryCredentials, String skipRegions,String accountId,String accountName){
Map<String,List<DynamoVH>> dynamodbtables = new LinkedHashMap<>();
String expPrefix = InventoryConstants.ERROR_PREFIX_CODE+accountId + "\",\"Message\": \"Exception in fetching info for resource in specific region\" ,\"type\": \"DynamoDB\" , \"region\":\"" ;
for(Region region : RegionUtils.getRegions()){
try{
if(!skipRegions.contains(region.getName())){
AmazonDynamoDB awsClient= AmazonDynamoDBClientBuilder.standard().
withCredentials(new AWSStaticCredentialsProvider(temporaryCredentials)).withRegion(region.getName()).build();
String marker = null;
List<String> tables = new ArrayList<>();
ListTablesResult listTableResult;
do{
listTableResult = awsClient.listTables(new ListTablesRequest().withExclusiveStartTableName(marker));
marker = listTableResult.getLastEvaluatedTableName();
tables.addAll(listTableResult.getTableNames());
}while(marker!=null);
List<DynamoVH> dynamodbtablesTemp = new ArrayList<>();
tables.parallelStream().forEach(tblName -> {
TableDescription table = awsClient.describeTable(tblName).getTable();
List<com.amazonaws.services.dynamodbv2.model.Tag> tags = awsClient.listTagsOfResource(new ListTagsOfResourceRequest().withResourceArn( table.getTableArn())).getTags();
synchronized (dynamodbtablesTemp) {
dynamodbtablesTemp.add(new DynamoVH(table,tags));
}
});
if(!dynamodbtablesTemp.isEmpty() ){
log.debug(InventoryConstants.ACCOUNT + accountId +" Type : DynamoDB "+region.getName() + " >> "+dynamodbtablesTemp.size());
dynamodbtables.put(accountId+delimiter+accountName+delimiter+region.getName(), dynamodbtablesTemp);
}
}
}catch(Exception e){
if(region.isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX)){
log.warn(expPrefix+ region.getName()+InventoryConstants.ERROR_CAUSE +e.getMessage()+"\"}");
ErrorManageUtil.uploadError(accountId,region.getName(),"dynamodb",e.getMessage());
}
}
}
return dynamodbtables;
}
@Override
public ListTablesResult listTables(ListTablesRequest listTablesRequest) {
throw new UnsupportedOperationException();
}
public static void main(String[] args)
{
System.out.println("Your DynamoDB tables:\n");
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
ListTablesRequest request;
boolean more_tables = true;
String last_name = null;
while(more_tables) {
try {
if (last_name == null) {
request = new ListTablesRequest().withLimit(10);
}
else {
request = new ListTablesRequest()
.withLimit(10)
.withExclusiveStartTableName(last_name);
}
ListTablesResult table_list = ddb.listTables(request);
List<String> table_names = table_list.getTableNames();
if (table_names.size() > 0) {
for (String cur_name : table_names) {
System.out.format("* %s\n", cur_name);
}
} else {
System.out.println("No tables found!");
System.exit(0);
}
last_name = table_list.getLastEvaluatedTableName();
if (last_name == null) {
more_tables = false;
}
} catch (AmazonServiceException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
}
System.out.println("\nDone!");
}
@Override
public boolean exists() throws BackendException {
return client.getDelegate().listTables(new ListTablesRequest()) != null;
}
@Override
public ListTablesResult listTables(ListTablesRequest arg0)
throws AmazonServiceException, AmazonClientException {
throw new UnsupportedOperationException("Use the underlying client instance instead");
}
@Override
public ListTablesResult listTables(ListTablesRequest request) throws AmazonServiceException, AmazonClientException {
return getBackend().listTables(request);
}
@Override
public ListTablesResult listTables(ListTablesRequest arg0)
throws AmazonServiceException, AmazonClientException {
throw new UnsupportedOperationException("Use the underlying client instance instead");
}