Когда я ввожу запрос, через окно тестирования консоли здесь:
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
}
Надеюсь это поможет!
Других решений пока нет …