AWS CloudWatch 查询结果
AWS CloudWatch Query Result
下面的代码returns记录了我运行它在调试模式下在这一行设置断点并进入该行。但是当我 运行 它在常规 运行 中并且不进入这一行时,它会产生 0 个结果。
我究竟做错了什么?谢谢
GetQueryResultsResult getQueryResultsResult = awslogs.getQueryResults(getQueryResultsRequest);
在该行代码之前添加以下代码行已解决问题:
TimeUnit.SECONDS.sleep(2);
谢谢
查询不是由CloudWatchLogsClient
的方法getQueryResults
执行的,是在调用startQuery
时执行的。
startQuery
可能需要很长时间才能完成执行,因此如果您在 startQuery
之后立即调用 getQueryResults
,它不会获得结果,因为查询可能还是 运行.
因此,要获得结果,您可以通过检查 GetQueryResultsResponse
的状态来验证查询是否仍然是 运行,如下所示:
GetQueryResultsResponse getQueryResultsResponse = null;
do {
getQueryResultsResponse = awslogs.getQueryResults(getQueryResultsRequest);
} while ("Running".equals(getQueryResultsResponse.status().toString()));
下面的代码returns记录了我运行它在调试模式下在这一行设置断点并进入该行。但是当我 运行 它在常规 运行 中并且不进入这一行时,它会产生 0 个结果。 我究竟做错了什么?谢谢
GetQueryResultsResult getQueryResultsResult = awslogs.getQueryResults(getQueryResultsRequest);
在该行代码之前添加以下代码行已解决问题:
TimeUnit.SECONDS.sleep(2);
谢谢
查询不是由CloudWatchLogsClient
的方法getQueryResults
执行的,是在调用startQuery
时执行的。
startQuery
可能需要很长时间才能完成执行,因此如果您在 startQuery
之后立即调用 getQueryResults
,它不会获得结果,因为查询可能还是 运行.
因此,要获得结果,您可以通过检查 GetQueryResultsResponse
的状态来验证查询是否仍然是 运行,如下所示:
GetQueryResultsResponse getQueryResultsResponse = null;
do {
getQueryResultsResponse = awslogs.getQueryResults(getQueryResultsRequest);
} while ("Running".equals(getQueryResultsResponse.status().toString()));