Какво е AWS Lambda? Ламбда функция с примери
⚡ Умно обобщение
AWS Lambda е платформа за безсървърни изчисления, управлявана от събития, от Amazon Уеб услуги, които изпълняват вашия код в отговор на тригери, автоматично обработвайки осигуряването, мащабирането и управлението на сървъра, така че да се фокусирате само върху бизнес логиката.

Преди да проучите AWS Lambda, е полезно да разберете какво означава „безсървърно“.
Какво е Serverless?
„Сървърлес“ е термин, който обикновено се отнася до приложения без сървър. Приложенията без сървър са такива, които не се нуждаят от предоставяне на сървър и не изискват от вас да управлявате сървъри.
Какво е AWS Lambda?
AWS Lambda е управлявана от събития изчислителна платформа без сървър, предоставена от Amazon като част от Amazon Уеб услуги. Следователно не е нужно да се притеснявате кои AWS ресурси да стартирате или как ще ги управлявате. Вместо това, трябва да поставите кода на Lambda и той ще работи.
В AWS Lambda кодът се изпълнява въз основа на отговора на събития в AWS услугите, като например добавяне или изтриване на файлове в S3 контейнер, HTTP заявка от Amazon API Gateway и подобни събития. Въпреки това, Amazon Lambda може да се използва само за изпълнение на фонови задачи.
Функцията AWS Lambda ви помага да се съсредоточите върху основния си продукт и бизнес логиката, вместо да управлявате контрола на достъпа до операционната система (ОС), инсталирането на корекции на ОС, правилното оразмеряване, осигуряването, мащабирането и т.н.
Как работи AWS Lambda?
Следният пример на AWS Lambda с блокова диаграма обяснява работата на AWS Lambda в няколко лесни стъпки:
Стъпка 1: Първо качете вашия AWS Lambda код на всеки език, поддържан от AWS Lambda. Java, Python, Go и C# са някои от езиците, които се поддържат от функцията AWS Lambda.
Стъпка 2: Това са някои услуги на AWS, които ви позволяват да задействате AWS Lambda.
Стъпка 3: AWS Lambda ви помага да качите код и подробностите за събитието, при което той трябва да бъде задействан.
Стъпка 4: Изпълнява AWS Lambda код, когато е задействан от AWS услуги.
Стъпка 5: AWS таксува само когато се изпълни AWS Lambda кодът, а не в противен случай.
Това ще се случи при следните сценарии:
- Качете файлове в кофа S3
- Когато HTTP get/post крайна точка URL е ударен
- За добавяне, промяна и изтриване на таблици от базата данни на Dynamo
- В процеса на събиране на потоци от данни
- Известие
- Хостинг на уебсайт
- Изпращане на имейл
Забележка: Трябва да запомните, че ще бъдете таксувани за AWS услуги само когато се изпълни AWS Lambda кодът, в противен случай не е необходимо да плащате нищо.
Събития, които задействат AWS Lambda
Ето събитията, които ще се задействат, когато използвате AWS Lambda.
- Вмъкване, актуализиране и изтриване на данни в таблица на база данни на Dynamo
- За включване на насочени известия в SNS
- За търсене на хронология на регистрационни файлове в CloudTrail
- Влизане в S3 обект
- DynamoDB може да задейства AWS Lambda винаги, когато има добавени, модифицирани или изтрити данни в таблицата.
- Помага ви да планирате събитието, за да изпълните задачата по редовен времеви график.
- Модификации на обекти в кофи S3
- Известия, изпратени от Amazon SNS.
- AWS Lambda може да се използва за обработка на CloudTrail лог файловете.
- API Gateway ви позволява да задействате AWS Lambda при GET/POST методи.
AWS Lambda Concepts
Функция: Функцията е програма или скрипт, който се изпълнява в AWS Lambda. Lambda предава събития за извикване във вашата функция, която обработва събитие и връща неговия отговор.
Времена на изпълнение: Runtime позволява функции на различни езици, които се изпълняват в една и съща базова среда за изпълнение. Това ви помага да конфигурирате функцията си в runtime средата. Тя също така съответства на избраните от вас програмен език.
Източник на събитието: Източник на събитие е AWS услуга, като напр Amazon Социални мрежи или персонализирана услуга. Този тригер помага на функцията да изпълни своята логика.
Ламбда слоеве: Ламбда слоевете са важен механизъм за разпространение на библиотеки, потребителски изпълнения и други важни функционални зависимости. Този компонент на AWS също така ви помага да управлявате своя функционален код за разработка отделно от непроменливия код и ресурсите, които използва.
Потоци от регистрационни файлове: Потокът от регистрационни файлове ви позволява да анотирате функционалния си код с персонализирани регистрационни оператори, които ви помагат да анализирате потока на изпълнение и производителността на вашите AWS Lambda функции.
Как да използвате AWS Lambda
Сега ще научим как да използваме AWS Lambda с пример на AWS Lambda:
Стъпка 1) Отворете AWS Lambda URL
Отиди https://aws.amazon.com/lambda/ и Започнете.
Стъпка 2) Създай профил
След това създайте акаунт или влезте със съществуващия си акаунт.
Стъпка 3) Редактирайте кода и щракнете върху „Изпълни“
На следващата страница Lambda редактирайте кода и щракнете върху „Изпълни“.
Стъпка 4) Проверете изхода
Ще видите резултата.
AWS Lambda СРЕЩУ AWS EC2
Ето някои основни разлики между AWS Lambda и EC2.
| параметри | AWS Lambda | AWS EC2 |
| дефиниция | AWS Lambda е платформа като услуга (PaaS). Помага ви да стартирате и изпълните своя бекенд код. | AWS EC2 е инфраструктура като услуга (IaaS). Тя предоставя виртуализирани изчислителни ресурси. |
| Гъвкавост | Не предлага никаква гъвкавост за влизане в изчислителни инстанции. Позволява ви да изберете персонализирана операционна система или езикова среда за изпълнение. | Предлага гъвкавост за избор на различни инстанции, персонализирани операционни системи, корекции за сигурност и мрежа и др. |
| Инсталационен процес | Трябва да изберете средата, в която искате да изпълните кода, и да го изпратите в AWS Lambda. | За първи път в EC2 трябва да изберете операционната система и да инсталирате целия необходим софтуер и след това да натиснете кода си в EC2. |
| Ограничения на околната среда | Ограничено е до няколко езика. | Без ограничения на околната среда. |
AWS Lambda срещу AWS Elastic Beanstalk
Ето някои основни разлики между AWS Lambda и Elastic Beanstalk.
| параметри | AWS Elastic Beanstalk | AWS Lambda |
| Основна задача | Разполагайте и управлявайте приложенията в AWS Cloud, без да се притеснявате за инфраструктурата, която изпълнява тези приложения. | AWS Lambda се използва за изпълнение на вашия back-end код. Не можете да го използвате за внедряване на приложение. |
| Избор на ресурси на AWS | Това ви дава свободата да избирате AWS ресурси; например, можете да изберете EC2 инстанция, която е оптимална според вашето приложение. | Не можете да избирате AWS ресурсите, като например EC2 инстанция; Lambda предлага ресурси въз основа на вашето натоварване. |
| Тип система | Това е система със състояние. | Това е система без държава. |
Случаи на използване на AWS Lambda
AWS Lambda се използва за широк спектър от приложения, като например:
- Помага ви с ETL процес
- Позволява ви да извършвате обработка на файлове в реално време и обработка на потоци в реално време
- Използвайте за създаване на уеб приложения
- Използвайте в Amazon продукти като Alexa Chatbots и Amazon Ехо/Алекса
- Обработка на данни (анализ на стрийминг в реално време)
- Автоматизирани резервни копия на ежедневни задачи
- Мащабируеми бекендове (мобилни приложения, IoT устройства)
- Помага ви да изпълните логиката на бекенда от страната на сървъра
- Позволява ви да филтрирате и трансформирате данни
Най-добри практики за ламбда функция
Ето някои най-добри практики за AWS Lambda функции:
- Използвайте правилното „изчакване“.
- Използвайте функциите на локалното хранилище, което е с размер 500MB в папката /temp.
- Минимизирайте използването на стартов код, който не е пряко свързан с обработката на текущото събитие.
- Трябва да използвате вграден мониторинг на CloudWatch на вашите Lambda функции, за да видите и оптимизирате закъсненията на заявките.
Кога не трябва да използвате AWS Lambda
Следните ситуации са ситуациите, в които Lambda със сигурност не е идеален вариант:
- Не е подходящо да се използва AWS Lambda за софтуерни пакети или приложения, които разчитат на извикване на базови Windows RPC (Replacement Process - крайни процедури за проверка).
- Ако се използва за персонализирани софтуерни приложения с лицензионни споразумения, като например обработка на документи на MS-Office, Oracle бази данни и др.
- AWS Lambda не трябва да се използва за персонализирани хардуерни процеси, като например ускорение на GPU и хардуерен афинитет.
Предимства от използването на AWS Lambda
Ето плюсовете/ползите от използването на AWS Lambda:
- AWS Lambda е изключително гъвкав инструмент за използване.
- Помага ви да предоставите достъп до ресурси, включително VPC.
- Автор директно с WYSIWYG редактор в конзолата.
- Можете да го използвате като плъгин за Eclipse намлява Visual Studio.
- Тъй като е безсървърна архитектура, не е нужно да се притеснявате за управление или осигуряване на сървъри.
- Не е необходимо да настройвате никакви Виртуална машина.
- Помага на разработчиците да изпълняват и изпълняват отговора на кода на събития, без да изграждат инфраструктура.
- Трябва само да платите за времето за изчисление, само когато кодът ви се изпълнява.
- Можете да наблюдавате ефективността на вашия код в реално време чрез CloudWatch.
- Това ви позволява да изпълнявате кода си без да осигурявате или управлявате друг сървър.
- Помага ви да изпълнявате кода само когато е необходимо.
- Можете да го мащабирате автоматично, за да обработва няколко заявки на ден и дори да поддържа повече от хиляди заявки в секунда.
- AWS Lambda може да се конфигурира с помощта на външни таймери за събития за изпълнение на планирани задачи.
- Ламбда функцията в AWS трябва да бъде конфигурирана с външни събития и таймери, за да може да се използва за планиране.
- Ламбда функциите са без запазване на състоянието, така че могат да бъдат мащабирани бързо.
- AWS Lambda е бърз, така че ще изпълни вашия код в рамките на милисекунди.
Ограничения на AWS Lambda
Ето минусите/недостатъците от използването на AWS Lambda:
- Инструментът AWS Lambda не е подходящ за малки проекти.
- AWS Lambda разчита изцяло на AWS за инфраструктурата, така че не можете да инсталирате допълнителен софтуер, ако вашият код го изисква.
- Едновременното изпълнение има ограничение по подразбиране от 1,000 на регион, което може да бъде увеличено при поискване.
- Обемът на паметта му може да варира между 128 MB и 10 240 MB.
- Заявката за събитие не трябва да надвишава 128 KB.
- Lambda функциите ви помагат да записвате техните регистрационни файлове само в CloudWatch. Това е единственият инструмент, който ви позволява да наблюдавате или отстранявате неизправности във вашите функции.
- Времето за изпълнение на кода му е ограничено до 15 минути.




