AWS AWSResourceGroupsTaggingAPI извлекает тот же набор сведений о ресурсе в третий раз для получения сведений - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь получить сведения о ресурсе AWS, такие как (EC2, лямбда, ECS, SQS, SNS, ...), используя AWSResourceGroupsTaggingAPI

Вначале я пытался получить фильтр, чтобы получить только лямбда-функции, присутствующие всчет для попытки, в моей учетной записи песочницы у нас есть почти 200 функций

, используя приведенный ниже код, нам нужно получать лямбды 50 за раз, но мой код ведет себя по-разному, т.е. он приносит то же самое, т.е. первый наборуслуги в третий раз, потому что paginationtoken является пустым, я не знаю, почему он возвращает пустое значение, вместо этого он должен вернуть строку (если следующий набор данных присутствует) или null (если следующий набор данных отсутствует.

в настоящее время в третий раз япустая пагинация, взято так, что я выбираю первый набор из 50 лямбда-функций

AWSResourceGroupsTaggingAPI tagClient = AWSResourceGroupsTaggingAPIClientBuilder.standard().withRegion("us-east-1").build();
...
void listLambda() {
   GetResourcesRequest  getResourcesRequest = new GetResourcesRequest();
   getResourcesRequest.setResourcesPerPage(50);
   getResourcesRequest.setResourceTypeFilters(Arrays.asList("lambda"));
   GetResourcesResult getResourcesResult = tagClient.getResources(getResourcesRequest);
   List<ResourceTagMapping> reslist = getResourcesResult.getResourceTagMappingList();
   fetchResource(getResourcesRequest, getResourcesResult, reslist);
}

...
private void fetchResource( GetResourcesRequest getResourcesRequest, GetResourcesResult getResourcesResult, List<ResourceTagMapping> reslist) {

    for(ResourceTagMapping resourceTagMapping: reslist) {
        System.out.println("Resource ARN  : "+resourceTagMapping.getResourceARN());
        System.out.println("Tags : "+resourceTagMapping.getTags().size());
    }

    if(!getResourcesResult.getPaginationToken().isEmpty() && 
        getResourcesResult.getPaginationToken()!=null ) {
        getResourcesRequest.setResourcesPerPage(50);
        getResourcesRequest.setResourceTypeFilters(Arrays.asList("lambda"));
//      getResourcesRequest.setPaginationToken(getResourcesResult.getPaginationToken());
        getResourcesRequest.withPaginationToken(getResourcesResult.getPaginationToken());
        getResourcesResult = tagClient.getResources(getResourcesRequest);
        reslist = getResourcesResult.getResourceTagMappingList();
        fetchResource( getResourcesRequest, getResourcesResult, reslist);
        }
}

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...