Как упоминалось здесь[1] в документах aws, Amplify хранит журналы доступа для всех приложений, которые вы размещаете в Amplify. Другими словами, он не хранится ни в одном из ваших журналов CloudWatch и просто виден на панели инструментов Amplify Console, а хранится напрямую и доступен через саму консоль Amplify. Таким образом, вы не сможете найти указанные журналы ни в одной из своих групп журналов CloudWatch. Это также указано на вкладке журнала доступа к консоли Amplify.Нажмите кнопку «Изменить диапазон времени», и вы должны увидеть: «Вы можете получить доступ к журналам за любой двухнедельный период, начиная с даты и времени, указанных ниже. Если вы хотите получить доступ к более старым журналам, вам нужно будет настроить функцию Lambda, которая запускается каждые две недели и сохраняет результаты в S3'. Как мы видим, в отличие от журналов CloudWatch, если мы хотим получить доступ к старым журналам Amplify, мы должны явно экспортировать и хранить их где-то локально или в хранилищах данных, таких как S3.
Если вы хотите выполнить дополнительную обработку этих журналов, вы можете загрузить ее через консоль и сделать это. Если вы хотите создать автоматизированное решение для обработки журналов Amplify Access, вы можете выполнить следующие шаги:
Мы можем использовать вызов AWS Api «GenerateAccessLogs» [2], чтобы получить журналы доступа к веб-сайту за определенный период времени с использованием предварительно подписанного URL-адреса. Обратитесь к самому нижнему разделу этого документа[2] со ссылками на соответствующие команды интерфейса командной строки AWS или вызовы SDK для этого действия. Мы можем использовать этот вызов CLI/API/SDK в наших сценариях или коде для программного извлечения журналов доступа и их сохранения где-нибудь (либо в локальном файле, либо в S3).
Если вы хотите автоматизировать описанный выше экспорт журналов, запланируйте запуск своего сценария локально или вы также можете запускать тот же код (скажем, сценарий Python) через AWS Lambda и запланировать выполнение лямбды каждые две недели через AWS EventBridge.
Как только мы экспортируем журналы доступа, скажем, S3 программно или вручную, мы можем выполнить дополнительную обработку этих данных. Например, как упоминалось в разделах «Анализ журналов доступа» ниже этого раздела здесь[2], вы можете использовать AWS Athena для анализа журналов S3. При необходимости вы также можете вернуть результаты Athena в метрики CloudWatch[3].
Справка
[1] https://docs.aws.amazon.com/amplify/latest/userguide/access-logs.html#using-access-logs
[2] https://docs.aws.amazon.com/amplify/latest/APIReference/API_GenerateAccessLogs.html
[3] https://stackoverflow.com/questions/63715926/creating-a-cloudwatch-metrics-from-the-athena-query-results