Я работаю с Python 3.6 и boto3 == 1.7.84. Я пытался получить журналы CloudWatch с помощью boto3 от AWS, но обнаружил, что количество возвращаемых событий намного меньше, чем то, что я вижу на странице аналитики CloudWatch. Я предполагал, что
import boto3
client = boto3.client('logs')
response = client.filter_log_events(
logGroupName='/aws/batch/job',
startTime=1572520000000,
endTime=1572570000000,
filterPattern='exceptions',
)
вернет все события, включая «исключения», независимо от имени потока задания. Однако ничего не вернулось. Но если бы я указал logStreamNames, как это
import boto3
client = boto3.client('logs')
response = client.filter_log_events(
logGroupName='/aws/batch/job',
logStreamNames=['training/default/[ASpecificID]'],
startTime=1572520000000,
endTime=1572570000000,
filterPattern='exceptions',
)
, он вернул журналы, содержащие строку «исключения», с logStreamNames=['training/default/[ASpecificID]']
.
Другая странная вещь состояла в том, что когда я сделал
import boto3
client = boto3.client('logs')
response = client.filter_log_events(
logGroupName='/aws/batch/job',
logStreamNamePrefix='training/default',
startTime=1572520000000,
endTime=1572570000000,
filterPattern='exceptions',
)
журналы, содержащие строку «исключения» с logStreamNames=['training/default/[ASpecificID]']
, не были возвращены. Некоторые журналы с logStreamNamePrefix='training/'
действительно появлялись, но не все. Количество возвращенных событий намного меньше, чем я получил, выполнив
fields @timestamp, @message, @logStream
| filter @logStream like /training\/default/
| filter @message like /exceptions/
| limit 10000
с CloudWatch регистрирует синтаксис запроса статистики на странице аналитики CloudWatch. Я сделал что-то не так с boto3, что привело к этому несоответствию?