Результат запроса AWS CloudWatch
Приведенный ниже код возвращает записи, когда я запускаю его в режиме отладки с точкой останова на этой строке и переходом в строку. Но когда я запускаю его в обычном режиме Run и не вхожу в эту строку, он выдает 0 результатов. Что я делаю неправильно? Спасибо
GetQueryResultsResult getQueryResultsResult = awslogs.getQueryResults(getQueryResultsRequest);
3 ответа
Добавление строки кода ниже до этой строки кода исправило проблему:
TimeUnit.SECONDS.sleep (2);
Спасибо
Запрос не выполняется методом getQueryResults
из CloudWatchLogsClient
, выполняется при вызове startQuery
.
В startQuery
может занять много времени, чтобы завершить его выполнение, поэтому, если вы вызовете getQueryResults
сразу после startQuery
, он не получит результатов, потому что запрос может все еще выполняться.
Итак, чтобы получить результаты, вы можете проверить, выполняется ли запрос, проверив статус GetQueryResultsResponse
нравится:
GetQueryResultsResponse getQueryResultsResponse = null;
do {
getQueryResultsResponse = awslogs.getQueryResults(getQueryResultsRequest);
} while ("Running".equals(getQueryResultsResponse.status().toString()));
Используйте итеративную команду «DescribeQueriesCommand», чтобы проверить и дождаться, пока запрос не перейдет в состояние «Завершен», а затем вызовите «GetQueryResultsCommand».
Итеративный вызов GetQueryResultsCommand только приводит к потере ограничений запросов AWS CloudWatch Insights.