У меня есть .netcore, обрабатывающая AWS Lambda, которая записывает журналы в одном потоке журналов AWS CloudWatch в формате json.Приблизительно он записывает около 200/400 записей журнала, каждая из которых содержит около 800 строк (не более 25 КБ) данных json.
Как только обработка Lambda завершена с помощью журналов, другой экспорт Lambda записывает журнал в файл Excel и экспортируетфайл для S3.Проблема в том, что он записывает около 110 журналов только тогда, когда CloudWatch имеет 200 записей.Я вижу в консоли, что есть 200 записей журнала, но файл Excel содержит только от 110 до 116 строк.
Перед экспортом в Excel я сначала проверяю количество записей журнала, и я заметил, что число не подходит,Это должно быть 200, но ошибочно получается как 110. Код, который я пишу:
using (AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient("xxx", "xxx", "xx-xxxx-2"))
{
var request = new FilterLogEventsRequest()
{
LogGroupName = GroupName,
LogStreamNames = new List<string>() { StreamName }
};
Task<FilterLogEventsResponse> response = client.FilterLogEventsAsync(request);
response.Wait();
if (null != response.Result && null != response.Result.Events)
result = response.Result.Events.Count;
}
Я также проверил, что когда я пишу простой текст вместо длинных данных json, я получаю правильное количество в приведенном выше коде.Но, когда журнал содержит длинные данные JSON;Я получаю неправильный счет.Для тестирования, когда я сокращаю данные json до менее чем 200 строк, я получаю правильный счет.
Итак, есть ли предел?Функция FilterLogEventsAsync () не может получить все журналы, когда в них записано большое количество данных json (25 КБ или 800 строк)?