Те, кто пользуется веб-инструментами от компании Amazon, знают о существовании такого инструмента, как AWS Lambda, но не все знают, что это такое и как им можно пользоваться.
AWS Lambda — это специальный инструмент, который помогает активировать любой код для любого приложения без необходимости его администрировать. Любой код будет выполняться на основе событий, которые будут происходить в сервисах AWS. Если простыми словами: вы добавляете свой скрипт, который должен исполниться в AWS Lambda, и задаете триггер или событие, которое будет запускать этот код. Больше вам делать ничего не нужно, потому что обо всем другом — администрировании, мониторинге работы кода, безопасности, журналах, логах и т. д. — позаботится сервис AWS Lambda.
Что самое интересное — вы платите только тогда, когда ваш код будет работать, а пока он находится в состоянии покоя, вы платить не будете. То есть фактически вы платите только за вычислительные процессы, которые выполняются с вашим кодом. Количество запросов к вашим скриптам может быть разное: от нескольких запросов в сутки до нескольких тысяч запросов в секунду.
Что такое AWS Lambda и как работает этот инструмент
Работу AWS Lambda можно описать в пяти этапах:
На первом этапе вы активируете сервис AWS Lambda и загружаете скрипты, которые должны будут исполняться. AWS Lambda поддерживает несколько языков: Go, Python, C#, Java, Node.js.
На втором этапе вы активируете сервис AWS, на котором будет исполняться Lambda. Это могут быть: Amazon S3, Amazon API Gateway, DynamoDB, Amazon SNS, CloudFront, Mobile App и др.
Далее, как только происходит заданное событие на каком-либо сервисе AWS (а у AWS Lambda есть триггер на это событие), исполняется ваш код, который активируется триггером.
Исполнение Lambda-кода по заданному сценарию.
С вас снимается оплата за выполненные вычисления сервисом AWS Lambda.
Получается, что использование AWS Lambda:
экономит ваши деньги, потому что вы платите только за вычисления;
дает вам возможность быстро исполнить свой код, потому что взаимодействие между сервисами AWS очень быстрое;
это отличное взаимодействие со всеми службами и веб-инструментами от компании Amazon;
это высокая вычислительная мощь, способная обработать до нескольких тысяч запросов в секунду.
Практически AWS Lambda может работать в следующих примерных ситуациях:
Amazon S3 отправляет сведения о происходящем событии в AWS Lambda, например, удаляется или загружается изображение, а AWS Lambda реагирует на это созданием эскиза или копии изображения для его возможного восстановления.
Если в DynamoDB происходит заданное изменение в таблице, то оповещение о таком событии отправляется в AWS Lambda, где запускается триггер и код-реакция на событие в базе данных.
API Gateway запускают AWS Lambda при помощи методов Get или Post в момент заполнения и отправки формы, а AWS Lambda запускает процесс обработки формы и внесения данных из формы в AWS-базу данных.
Сервис SNS информирует AWS Lambda о показанном push-уведомлении и что пользователь отреагировал на это пуш-уведомление положительно, а в ответ в AWS Lambda активируется скрипт отправки SMS-сообщения этому пользователю.
И др.
AWS Lambda: преимущества сервиса
Вот несколько основных преимуществ сервиса AWS Lambda:
Простота работы с этим инструментом. Вы только пишите необходимый скрипт или сценарий работы и заливаете его в AWS Lambda. Задаете триггер на событие, при котором должен сработать код, и все. Больше ни о чем не беспокоитесь.
Подробный журнал. AWS Lambda ведет подробный журнал всех выполненных вычислительных операций, которые вы всегда можете просмотреть.
Плата за использование. Например, вы выставили время для выполнения какого-то кода в 400 мс, а AWS Lambda выполнит его за 200 мс — с вас возьмут оплату только за 200 мс, то есть сколько времени было фактически потрачено на работу с вашим кодом.
Достаточное количество поддерживаемых языков. Уже сейчас AWS Lambda поддерживает Go, C#, Java, Python, Node.js. Список языков постоянно дополняется, к примеру, поддержка Go была добавлена совсем недавно.
Простота написания скриптов. Вы можете написать свой скрипт прямо в онлайн-редакторе AWS.
Бесплатность. Вы можете попробовать использовать AWS Lambda совершенно бесплатно, как и другие сервисы AWS.
Заключение
Теперь вы знаете, что такое AWS Lambda. По сути, Lambda выполняет функцию контролирующей прослойки и администрирования взаимодействия между всеми сервисами компании Amazon.
Поэтому если вы активно пользуетесь инструментами AWS, то обязательно попробуйте Lambda.
Другое