当我通过此处的控制台测试窗口输入请求时:
https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/list
{
"projectIds": [
PROJECT_ID
],
"resourceNames": [
RESOURCE_NAMES
],
"filter": FILTER,
"orderBy": 'timestamp desc',
"pageSize": 100
}
我设置了页面大小参数,并且正确的条目数与下一页标记一起返回。但是,当我通过 PHP Cloud API 将此选项设置为条目请求的参数时,它仅返回非分页结果;忽略页面大小限制。
这是 php API 的问题吗?有人找到了解决此问题的方法吗?
putenv('GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_JSON_FILE');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$this->loggingClient = new LoggingClient([
'projectId' => PROJECT_ID
]);
// Get a logger instance.
$logger = $this->loggingClient->logger(LOGGER);
$options = array(
'pageSize' => 100,
'orderBy' => 'timestamp desc',
'filter' => FILTER,
);
$entries = $this->loggingClient->entries($options);
$logs = array();
foreach ($entries as $entry) {
...
最佳答案
默认情况下,从 LoggingClient::entries()
返回的迭代器将在您迭代时为您分页。事实上,每个请求只向服务器请求 100 个日志,这对您来说是透明的:)。
如果您想快速获取一页结果,我们也提供以下支持:
$entries = $client->entries([
'pageSize' => 100
]);
foreach ($entries->iterateByPage() as $page) {
print count($page); // Should be 100
}
希望这有帮助!
关于php - 如何获取 Google Cloud Platform Stackdriver Logging API 中的 'page size' 选项以返回带有下一页 token 的分页条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50118697/