Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples GitHub .
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use ListCoverage com um AWS SDK
O código de exemplo a seguir mostra como usar ListCoverage.
Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação em contexto no seguinte exemplo de código:
- Java
-
- SDK para Java 2.x
-
/**
* Lists AWS Inspector2 coverage details for scanned resources using a paginator.
*
* @param maxResults Maximum number of resources to return.
*/
public CompletableFuture<String> listCoverageAsync(int maxResults) {
ListCoverageRequest initialRequest = ListCoverageRequest.builder()
.maxResults(maxResults)
.build();
ListCoveragePublisher paginator = getAsyncClient().listCoveragePaginator(initialRequest);
StringBuilder summary = new StringBuilder();
return paginator.subscribe(response -> {
List<CoveredResource> coveredResources = response.coveredResources();
if (coveredResources == null || coveredResources.isEmpty()) {
summary.append("No coverage information available for this page.\n");
return;
}
Map<String, List<CoveredResource>> byType = coveredResources.stream()
.collect(Collectors.groupingBy(CoveredResource::resourceTypeAsString));
byType.forEach((type, list) ->
summary.append(" ").append(type)
.append(": ").append(list.size())
.append(" resource(s)\n")
);
// Include up to 3 sample resources per page
for (int i = 0; i < Math.min(coveredResources.size(), 3); i++) {
CoveredResource r = coveredResources.get(i);
summary.append(" - ").append(r.resourceTypeAsString())
.append(": ").append(r.resourceId()).append("\n");
summary.append(" Scan Type: ").append(r.scanTypeAsString()).append("\n");
if (r.scanStatus() != null) {
summary.append(" Status: ").append(r.scanStatus().statusCodeAsString()).append("\n");
}
if (r.accountId() != null) {
summary.append(" Account ID: ").append(r.accountId()).append("\n");
}
summary.append("\n");
}
}).thenApply(v -> {
if (summary.length() == 0) {
return "No coverage information found across all pages.";
} else {
return "Coverage Information:\n" + summary.toString();
}
}).exceptionally(ex -> {
Throwable cause = ex.getCause();
if (cause instanceof ValidationException) {
throw new CompletionException(
"Validation error listing coverage: " + cause.getMessage(), cause);
} else if (cause instanceof Inspector2Exception e) {
throw new CompletionException(
"Inspector2 service error: " + e.awsErrorDetails().errorMessage(), e);
}
throw new CompletionException("Unexpected error listing coverage: " + ex.getMessage(), ex);
});
}