Я пытаюсь настроить лямбда-функцию для обработки журналов из экземпляра AWS. Для этого я настраиваю «триггер» CloudWatch Logs в качестве входных данных для моей функции Lambda. Соответствующий пользовательский интерфейс конфигурации на консоли AWS для справки показан на снимке экрана ниже.
У меня есть группа журналов, и в этой группе есть несколько потоков журналов, каждый из которых соответствует файлу журнала. Я хочу обрабатывать только события журнала из 2 из +30 потоков в группе журналов. Триггер ввода CloudWatch Logs Lambda позволяет указать группу журналов и фильтр. Как ни странно, похоже, нет возможности фильтровать журналы по имени потока. Я могу просто отфильтровать все журналы в моей лямбда-функции, но я бы предпочел выполнить эту работу до того, как моя лямбда-функция будет выполнена, иначе она будет вызываться с нерелевантными журналами в 99% случаев.
Что касается параметра фильтра, Документы по интеграции Lambda CloudWatch Log указывает на Фильтр и синтаксис шаблона для фильтра. Но я ничего не вижу об именах потоков журналов.
Фильтр работает не так, как вы хотите. Вы не можете фильтровать по потоку журнала, только по содержимому строки журнала.
Я предлагаю вам не использовать фильтр (например, чтобы Lambda получал все события журнала) и проверять поток журнала в метаданных событий, когда ваша Lambda вызывается. Подробная информация о формате мероприятия находится в документации Lambda:
https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchlogs.html