Это Основное введение в Lambda Triggers Это использует dynamodb в качестве примера источника события.
Мы много говорим о более продвинутом уровне лямбда триггеров в нашей популярной серии из двух частей: Полное руководство по Lambda Triggers Отказ Если вы хотите узнать больше, читать Часть одна и Часть два Отказ
На этот раз мы вернемся к основам на этот раз, потому что пропускание некоторых шагов при изучении чего-то нового, возможно, вы можете запутаться. Он имеет тенденцию раздражать, или он даже может сделать вас разочарованным. Почему?
Чтобы понять, как что-то работает надлежащим образом, а затем узнать, как применять свои знания практически без стресса, Вы должны овладеть конкретным предметом в определенном порядке Отказ
Позвольте мне поставить это так: вы не можете рассчитать, как быстро — это субатомическая частица, движущаяся в пространстве, если она 300 легкомысленно от ближайшей планеты, если вы не знаете базовую математику, как 3.14 раз 42, верно?
Так Вернуться к нашей теме здесь, что aws lambda триггеры?
Лямбда триггеры объяснили интеграцией dynamodb
Dynamodb — это продукт AWS Так же, как лямбда, и поэтому вы можете с легкостью создавать триггеры. Триггеры — это куски кода, которые автоматически реагируют на любые события в потоках Dynamodb.
Триггеры позволяют создавать приложения, которые затем будут реагировать на любые модификацию данных сделано в таблицах Dynamodb. Включая потоки Dynamodb на столе, вы сможете ассоциировать ARN с вашей функцией лямбда. Мгновенно после модифицированного элемента в таблице появится новая запись в потоке таблицы. Когда AWS LAMBDA обнаруживает новую запись потока, он призовит вашу функцию лямбда синхронно.
Функции лямбда могут выполнять любые действия, которые вы указываете , как отправка уведомлений или инициация рабочего процесса.
Пример: Предположим, у вас есть мобильное игровое приложение, которое пишет на таблице GameScores. Каждый раз, когда атрибут TopScore обновляется таблица GameScores, соответствующая запись потока будет записана в поток таблицы. Затем вы можете установить функцию лямбда, чтобы опубликовать сообщение на сайтах социальных медиа после того, как событие сработает.
Ведомое событие лямбда и как вызвать Это
Для функций лямбда для выполнения событие должно произойти (подумайте Если тогда) Отказ Если событие происходит, то он будет вызвать лямбда. До недавнего времени наши знания о запуске функций лямбда были основаны на API Gateway Как триггер, но больше ресурсов AWS может вызвать ваши функции лямбда.
События могут быть все возможными с ресурсами в вашей учетной записи AWS. Кто-нибудь написал запись для dynamodb? Это может вызвать функцию лямбда Отказ Кто-то загрузил файл на S3? Это может быть триггер лямбда тоже Отказ
Лямбда вызывает еще одну лямбда — плохое решение?
Вы даже можете назвать лямбда функции из других функций лямбда! Но это обычно рассматривается как плохая практика. Если вы не закончите лямбда, прежде чем начать следующий, вы платите за то, что работаете как работает Отказ Первый, который ждет второй и второй. Подумайте о Оптимизация вашего лямбдаса для производительности и стоимости.
Вы всегда должны поместить другую услугу между функциями лямбда и не звонить им напрямую. SQS, SNS и Функции шага Являются хорошими способами подключения ваших функций лямбда, не платя за два захваченных одновременно.
Как вызвать лямбда вручную?
Если вы когда-нибудь хотите запустить Lambdas «вручную», просто создайте событие, используя один из ресурсов AWS.
Как вызвать функцию лямбда? 3 распространенные способы вызвать лямбда
Чтобы вызвать функцию лямбда, вы можете выбрать между разными способами. 3 наиболее распространенных способа являются API-шлюзами, S3 и Dynamodb Statio.
API Gateway
Событие Gateway API — один из способов запуска lambda. Эти события считаются синхронными событиями. Проще говоря, это означает, что когда кто-то называет шлюз API, он будет вызвать вашу функцию лямбда. Это синхронное событие, потому что ваш Функция лямбда должна ответить на клиента непосредственно в конце его призыва Отказ Для лямбда, чтобы знать, какое событие будет вызвать его, вам нужно определить его в конфигурации или, или Serverless.yml
Если вы используете Servelless Framework.
S3
События S3 происходят, когда кто-то (или что-то) Изменяет содержимое ведра S3 Отказ Изменение контента может быть достигнуто либо создание, удалением или обновлением файла. Пока вы определяете событие, вы можете Укажите, какие действия заставит лямбда функцию , будь то создание, удаление или обновление файла.
События S3 асинхронные, что означает, что ваша функция Lambda должна обрабатывать только событие и не нужно ничего реагировать. Нет никакого клиента, как с Gateway API, поэтому никто не ждет вашей функции для отправки ответа. S3 отправит событие, которое вызывает свою функцию лямбда, но она не проверяет, что он сделал после этого Отказ
Dynamodb Table Streams
События Dynamodb будут объяснены в ближайшее время, но сначала начнем с потоков таблицы Dynamodb.
Поток таблицы Dynamodb похоже на линию или очередь, через которую потоки данных. В этом конкретном случае данные на самом деле изменение, сделанное на конкретную таблицу. Это означает, что когда кто-то обновит запись в определенной таблице Dynamodb, он мгновенно опубликует все эти изменения в потоке, и это Кроме того, подразумевает, что функция лямбда будет вызвана, потому что в потоке есть данные .
Этот путь немного сложнее, так как нам нужно подключить функцию лямбда к потоку dynamodb. Когда есть данные в потоке, есть Два разных способа лямбда будет вызвать по нему.
Во-первых, когда есть Любые данные в потоке , что означает одно изменение в базе данных в определенное время, лямбда будет выполнена только один раз.
Вторые способы столовые потоки триггерные функции Lambda, когда есть Партия событий в потоке, все обработано вместе Отказ Этот способ сохраняет время выполнения многое, поскольку обработки потоков довольно быстро.
Как и события S3, события столового потока являются асинхронными, поэтому вам не нужно отправлять ответ от вашей функции лямбда. Они отличаются от событий S3 во втором способе, чтобы вызвать функции лямбда, что позволяет выносить несколько изменений Dynamodb в одно событие лямбда.
Бонус: Список источников событий лямбда
Вот небольшой список услуг AWS, которые могут вызвать события для AWS Lambda.
Давайте начнем с Синхронные источники событий Отказ Это требует вашей функции Lambda, чтобы вернуть ответ, когда он закончен. Это связано с тем, что служение, вызванное событие, отправляет ответ на клиента или использует его, чтобы проверить, было ли событие успешно обрабатывается.
- Упругая балансировка нагрузки (балансировщик нагрузки на приложение)
- Amazon Cognito
- Amazon Connect
- Amazon Lex.
- Амазонка Алекса
- Ворота Amazon API
- Amazon Cloudfront (лямбда @ edge)
- Amazon Kinesis данных Firehose
- Amazon простой сервис хранения пакет
И теперь услуги, которые вызывают асинхронные события. Это просто огня и забудьте ; Услуги, вызванные событиями, не заботятся, если ваша функция Lambda обрабатывала их правильно. Если вам нужна логика повтора, вы должны реализовать его самостоятельно с помощью функций SQS или шага.
- Amazon Простая служба хранения
- Amazon простое уведомление службы
- Amazon Simple Eail Service
- AWS CloudFormation
- Amazon Cloudwatch Logs
- Amazon CloudWatch события
- AWS CodeCommit.
- AWS CONFIG.
- AWS IOT.
- AWS IOT события
- AWS CodePipieline.
Заключение
Aws lambda триггеры — просто действия, вызванные конкретными ресурсами AWS; Эти действия генерируют события, которые дополнительно выполняют функции Lambda, которые их слушают.
AWS LAMBDA — это система на основе событий Отказ Функции лямбда связаны с событиями, которые вызывают другие ресурсы AWS, такие как Gateway API, S3 или Dynamodb. Функции лямбда всегда будут реагировать на эти события.
После того, как вы закончите читать о триггерах, вы, вероятно, начните задаться вопросом о наблюдении о наблюдении в своем аспекте приложения без сервеса или, чтобы поставить его лучше, отсутствие его. Вы не будете первым, кто думал так, но, к счастью, несколько услуг могут помочь вам в этом отношении.
Dashbird может помочь вам отслеживать aws лямбдас со всеми в одной простой в понимании приборной панели. Настройте предупреждения, получите представление о том, что улучшить, и отслеживать расходы, не добавляя никакого напряжения в ваше приложение. Вы можете Зарегистрироваться Прямо сейчас, чтобы начать мониторинг приложения без сервеса бесплатно! Нет изменения кода, и кредитная карта не требуется.
Дальнейшее чтение:
Полный справочник AWS Lambda для начинающих (часть 1/3)
Использование Lambda слоев для лучшей безрусной архитектуры
Мониторинг против наблюдеемости: Можете ли вы сказать разницу?
AWS Lambda Обработка ошибок
Почему консоль AWS не всегда лучший для отладки без промедления?
Оригинал: «https://dev.to/dashbird/what-are-aws-lambda-triggers-1dhh»