모든 amazon API에는 다음 요청으로 설정해야하는 자체 토큰이 있습니다. 문서에서루프를 통해 아마존에서 모든 로그 이벤트를 얻는 방법은 무엇입니까?
public class Some {
public static void main (String[] args) {
final GetLogEventsRequest request = new GetLogEventsRequest()
.withLogGroupName("myGroup")
.withLogStreamName("myStrean");
final AWSLogs awsLogs = AWSLogsClientBuilder.defaultClient();
Collection<OutputLogEvent> result = new ArrayList<>();
GetLogEventsResult response = null;
do {
response = awsLogs.getLogEvents(request);
result.addAll(response.getEvents());
request.withNextToken(response.getNextBackwardToken());
} while (response.getNextBackwardToken() != null);
}
}
:
nextBackwardToken
역 방향에있는 항목의 다음 세트에 대한 토큰 AWS는 API를 로그로하지만 무한 루프를 얻었다. 토큰은 24 시간 후에 만료됩니다. 이 토큰은 null이되지 않습니다. . 당신이 스트림의 마지막에 도달 한 경우,
당신이 전달 같은 토큰을 반환합니다 그래서 LastEvaluatedKey처럼 null 일 수 없습니다 때 scan DynamoDB의 :
Map<String, AttributeValue> lastKeyEvaluated = null;
do {
ScanRequest scanRequest = new ScanRequest()
.withTableName("ProductCatalog")
.withLimit(10)
.withExclusiveStartKey(lastKeyEvaluated);
ScanResult result = client.scan(scanRequest);
for (Map<String, AttributeValue> item : result.getItems()){
printItem(item);
}
lastKeyEvaluated = result.getLastEvaluatedKey();
} while (lastKeyEvaluated != null);
그래서
와 내가 우리가 로그 api에 대해 이야기한다면 request.withNextToken
으로 전달해야합니까 ??? 그리고 nextBackwardToken
(및 nextForwardToken
너무) null 일 수 없다면 - 내가 아마존에서 마지막 응답을받는 것을 감지하는 방법 ???
토큰이 동일한 지 확인해야합니다. 그들이 그렇다면 당신은 하천의 끝에 있습니다. –
동일 - 이전 및 다음 응답의 토큰을 의미합니까? – Cherry
예. 그들이 같으면, 당신은 시내 끝자락에 있습니다. –