Несколько лямбда-журналов AWS, запускаемых несколькими способами, отображаются в одном потоке журналов Cloudwatch. - PullRequest
0 голосов
/ 21 октября 2019

Мы создали лямбда-функцию, которая должна срабатывать через каждую минуту. Он работает как положено и показывает правильный результат. Но поток журналов, который проходит через события Cloudwatch, содержит несколько журналов лямбда-триггеров в одном потоке журнала Cloudwatch.

Правило события: - enter image description here

Это так? можно создать 1 журнал CloudWatch для 1 Lambda Trigger ??

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Согласно документации AWS Lambda здесь , поток журнала представляет экземпляр вашей функции . Другими словами, поток журналов представляет журналы из единой среды выполнения для вашей лямбда-функции ... Среду выполнения также называют context (один из аргументов, который вы можете передать своему обработчику) ипричина, по которой вы не получаете новый поток журналов при каждом вызове, заключается в контексте , в котором выполняются функции Lambda.

Когда вы вызываете функцию Lambda, AWS загружает контейнер, содержащий код вашей функции, и выделяет запрошенные ресурсы, необходимые для выполнения вашей функции: процессор, память, сеть и т. Д. Все они формируют выполнение функцийсреда, которая также называется context . Эти ресурсы требуют времени для предоставления, и это приводит к увеличению задержки для выполнения функции. Это обычно называется «холодным стартом».

Чтобы уменьшить эту нежелательную задержку или холодный старт при каждом вызове после того, как ваша функция завершила свое первоначальное выполнение, вместо завершения среды выполнения, AWSподдерживает работу контейнера и среды выполнения, а также ресурсов, таких как процессор, память и сеть, подготовленных и готовых к ожиданию следующего вызова. Это известно как сохранение функции «тепло». Когда контейнер тёплый, последующие вызовы вашей функции выполняются в той же среде выполнения или context , как и предыдущий вызов, и поскольку вызов был выполнен тем же экземпляром функции, записываются журналыв тот же поток журнала, что и предыдущий вызов (вызовы), который является потоком журнала, который представляет этот экземпляр / среду выполнения / контекст функции.

Несмотря на это, стоит отметить, что AWS не позволяет контейнеру работать бесконечно. Если в течение определенного периода времени не будет никакого последующего вызова (точного периода времени нет, но обычно считается, что он составляет от 30 до 45 минут, source ), AWS завершит работу контейнера и освободит ресурсы дляиспользовать другой функцией. В следующий раз, когда вызывается функция Lambda, AWS будет повторять процесс обеспечения для этой функции, и будет создана новая среда выполнения, и это приведет к записи журналов ваших функций в новый поток журналов, который представляет новую среду / контекст выполнения. / экземпляр вашей функции.

Подробнее о контексте выполнения Lambda можно прочитать здесь .

0 голосов
/ 21 октября 2019

Rachit,

Ваша функция Lambda поставляется с группой журналов CloudWatch Logs с потоком журналов для каждого экземпляра вашей функции. Среда выполнения отправляет сведения о каждом вызове в поток журналов и передает журналы и другие выходные данные из кода вашей функции.

Более того, из документации AWS Cloudwatch видно, чтопоток журналов создается каждый раз, когда журналы поступают из другого источника событий. В случае с Lambda это один поток на каждый контейнер Lambda, где каждый контейнер может обрабатывать несколько событий.

Поток журнала - это последовательность событий журнала, которые используют один и тот же источник. Каждый отдельный источник журналов в CloudWatch Logs составляет отдельный поток журналов.

Ссылка:

https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-logging.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...