Какво е AWS Lambda? Ламбда функция с примери
Преди функцията AWS Lambda, нека разберем:
Какво е Serverless?
Без сървър е термин, който обикновено се отнася до приложения без сървър. Приложенията без сървър са тези, които не се нуждаят от предоставяне на сървър и не изискват управление на сървъри.
Какво е AWS Lambda?
AWS Lambda е управлявана от събития изчислителна платформа без сървър, предоставена от Amazon като част от Amazon Уеб услуги. Следователно не е нужно да се притеснявате кои AWS ресурси да стартирате или как ще ги управлявате. Вместо това трябва да поставите кода на Lambda и той ще стартира.
В AWS Lambda кодът се изпълнява въз основа на отговора на събития в AWS услуги като добавяне/изтриване на файлове в S3 контейнер, HTTP заявка от Amazon API шлюз и т.н. Въпреки това, 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 Code, когато се задейства от AWS услуги:
Стъпка 5: AWS таксува само когато се изпълни ламбда кодът на AWS и не по друг начин.
Това ще се случи при следните сценарии:
- Качете файлове в кофа S3
- Когато URL адресът на крайната точка за получаване/подаване на HTTP е ударен
- За добавяне/модифициране и изтриване на Dynamo DB таблици
- В процеса на събиране на потоци от данни
- Известие
- Хостинг на уебсайт
- Изпращане на имейл
Забележка: Трябва да запомните, че ще таксувате за AWS услуги само когато AWS Lambda кодът се изпълни, в противен случай не е необходимо да плащате нищо.
Събития, които задействат AWS Lambda
Тук са събития, които ще се задействат, когато използвате AWS Lambda.
- Вмъкване, актуализиране и изтриване на данни Dynamo DB таблица
- За включване на насочени известия в SNS
- За търсене на хронология на регистрационни файлове в CloudTrail
- Влизане в S3 обект
- DynamoDB може да задейства AWS Lambda винаги, когато има добавени, модифицирани или изтрити данни в таблицата.
- Помага ви да планирате събитието, за да изпълните задачата в обичайния часови модел.
- Модификации на обекти в кофи S3
- Известия, изпратени от Amazon SNS.
- AWS Lambda може да се използва за обработка на регистрационните файлове на CloudTrail
- API Gateway ви позволява да задействате AWS Lambda при GET/POST методи.
AWS Lambda Concepts
Функция:
Функцията е програма или скрипт, който се изпълнява в AWS Lambda. Lambda предава събития за извикване във вашата функция, която обработва събитие и връща неговия отговор.
Времена на изпълнение:
Времето за изпълнение позволява функции на различни езици, които работят в една и съща базова среда за изпълнение. Това ви помага да конфигурирате вашата функция по време на изпълнение. Също така съответства на избраното от вас програмен език.
Източник на събитието:
Източник на събитие е AWS услуга, като напр Amazon SNS или персонализирана услуга. Тази функция за задействане ви помага да изпълните нейната логика.
Ламбда слоеве:
Ламбда слоевете са важен механизъм за разпространение на библиотеки, потребителски изпълнения и други важни функционални зависимости. Този компонент на AWS също така ви помага да управлявате своя функционален код за разработка отделно от непроменливия код и ресурсите, които използва.
Потоци от регистрационни файлове:
Потокът от регистрационни файлове ви позволява да анотирате функционалния си код с персонализирани отчети за регистриране, което ви помага да анализирате потока на изпълнение и производителността на вашите AWS Lambda функции.
Как да използвате AWS Lambda
Сега ще научим как да използваме AWS Lambda с пример за AWS Lambda:
Стъпка
) Стъпка 1) Отворете AWS Lambda URL
Гото https://aws.amazon.com/lambda/ и Започнете
Стъпка
) Създайте акаунт
След това създайте акаунт или влезте със съществуващия си акаунт
Стъпка
) Редактирайте кода и щракнете върху Изпълнение,
На следващата страница Lambda,
- Редактирайте кода
- Щракнете върху Изпълни
Стъпка
) Проверете изхода
Ще видите изход
AWS Lambda СРЕЩУ AWS EC2
Ето някои основни разлики между AWS Lambda и EC2.
параметри | AWS Lambda | AWS EC2 |
---|---|---|
дефиниция | AWS Lambda е платформа като услуга (PaaS). Помага ви да стартирате и изпълните своя бекенд код. | AWS EC2 е инфраструктура като услуга (laaS). Той предоставя виртуализирани изчислителни ресурси. |
Гъвкавост | Не предлага никаква гъвкавост за влизане в компютърни екземпляри. Позволява ви да изберете персонализирана операционна система или език за изпълнение. | Предлага гъвкавост за избор на разнообразие от екземпляри, персонализирани операционни системи, корекции за сигурност и мрежа и т.н. |
Инсталационен процес | Трябва да изберете вашата среда, в която искате да изпълните кода, и да изпратите кода в AWS Lambda. | За първи път в EC2 трябва да изберете операционната система и да инсталирате целия необходим софтуер и след това да натиснете кода си в EC2. |
Ограничения на околната среда | Той е ограничен до няколко езика. | Без ограничения на околната среда. |
AWS Lambda VS AWS Elastic Beanstalk
Ето някои основни разлики между AWS Lambda и Elastic Beanstalk.
параметри | AWS еластично бобено стъбло | AWS Lambda |
---|---|---|
Основна задача | Разполагайте и управлявайте приложенията в AWS Cloud, без да се притеснявате за инфраструктурата, която изпълнява тези приложения. | AWS Lambda се използва за стартиране и изпълнение на вашия Back-end код. Не можете да го използвате за внедряване на приложение. |
Избор на ресурси на AWS | Дава ви свобода да избирате ресурси на AWS; Например, можете да изберете екземпляр EC2, който е оптимален според вашето приложение. | Не можете да изберете ресурсите на AWS, като тип екземпляр на EC2, Lambda предлага ресурси въз основа на вашето работно натоварване. |
Тип система | Това е система със състояние. | Това е система без държава. |
Случаи на използване на AWS Lambda
AWS Lambda се използва за широк спектър от приложения като:
- Помага ви за ETL процес
- Позволява ви да извършвате обработка на файлове в реално време и обработка на потоци в реално време
- Използвайте за създаване на уеб приложения
- Използвайте в Amazon продукти като Alexa Chatbots и Amazon Ехо/Алекса
- Обработка на данни (анализ на стрийминг в реално време)
- Автоматизирани архиви на ежедневни задачи
- Мащабируеми задни части (мобилни приложения, много устройства)
- Помага ви да изпълните логиката на бекенда от страната на сървъра
- Позволява ви да филтрирате и трансформирате данни
Най-добри практики за ламбда функция
Ето някои най-добри практики на AWS Ламбда функции:
- Използвайте правилното „изчакване“.
- Използвайте функциите на локално съхранение, което е с размер 500MB в папката /temp
- Минимизиране на използването на начален код, който не е пряко свързан с обработката на текущото събитие.
- Трябва да използвате вграден мониторинг на CloudWatch на вашите Lambda функции, за да видите и оптимизирате закъсненията на заявките.
Кога не трябва да използвате AWS Lambda
Следват ситуациите, при които Lambda със сигурност не е идеален вариант:
- Не е подходящо да се използват софтуерни пакети или приложения на AWS Lambda, които разчитат на базово извикване Windows RPC
- Ако се използва за персонализирани софтуерни приложения с лицензионни споразумения като обработка на документи в MS-Office, Oracle бази данни и др.
- AWS Lambda не трябва да се използва за персонализиран хардуерен процес, като GPU ускорение, хардуерен афинитет.
Предимства от използването на AWS Lambda
Ето плюсовете/ползите от използването на AWS lambda:
- AWS Lambda е много гъвкав инструмент за използване
- Помага ви да предоставите достъп до ресурси, включително VPC
- Автор директно с WYSIWYG редактор в конзолата.
- Можете да го използвате като плъгин за Eclipse намлява Visual Studio.
- Тъй като това е архитектура без сървър, не е нужно да се притеснявате за управлението или предоставянето на сървъри.
- Не е необходимо да настройвате никакви Виртуална машина.
- Помага на разработчиците да изпълняват и изпълняват отговора на кода на събития, без да изграждат инфраструктура.
- Трябва само за времето за изчисление, само когато вашият код се изпълнява.
- Можете да наблюдавате ефективността на вашия код в реално време чрез CloudWatch.
- Позволява ви да изпълнявате своя код без обезпечаване или да управлявате друг сървър
- Помага ви да изпълните кода само когато е необходимо
- Можете да го мащабирате автоматично, за да обработва няколко заявки на ден и дори да поддържа повече от хиляди заявки в секунда.
- AWS Lambda може да се конфигурира с помощта на външни таймери за събития за изпълнение на планирани задачи.
- Функцията Lambda в AWS трябва да бъде конфигурирана с външно събитие и таймери; може да се използва за планиране.
- Ламбда функциите са без състояние, така че да могат да бъдат мащабирани бързо.
- AWS Lambda е бърз, така че ще изпълни вашия код в рамките на милисекунди.
Ограничения на AWS Lambda
Ето минусите/недостатъците от използването на AWS Lambda:
- Инструментът AWS Lambda не е подходящ за малки проекти.
- AWS Lambda изцяло разчита на AWS за инфраструктурата, така че не можете да инсталирате допълнителен софтуер, ако вашият код го изисква.
- Едновременното изпълнение е ограничено до 100
- AWS Lambda изцяло зависи от AWS за инфраструктурата; не можете да инсталирате допълнителен софтуер, ако вашият код го изисква.
- Обемът на паметта му може да варира между 128 и 1536 MB.
- Заявката за събитие не трябва да надвишава 128 KB.
- Lambda функциите ви помагат да записвате техните регистрационни файлове само в CloudWatch. Това е единственият инструмент, който ви позволява да наблюдавате или отстранявате неизправности във вашите функции.
- Изчакването за изпълнение на кода му е само 5 минути.
Oбобщение
- Без сървър е термин, който обикновено се отнася до приложения без сървър.
- AWS Lambda е една такава безсървърна изчислителна услуга. Следователно не е нужно да се притеснявате кои ресурси на AWS да стартирате или как ще ги управляват.
- Функцията е програма или скрипт, който се изпълнява в Lambda без сървър на AWS.
- Времето за изпълнение позволява функции на различни езици, които работят в една и съща базова среда за изпълнение.
- Източник на събитие е AWS услуга, като напр Amazon SNS или персонализирана услуга.
- Ламбда слоевете са важен механизъм за разпространение на библиотеки, потребителски изпълнения и други важни функционални зависимости.
- Потокът от регистрационни файлове ви позволява да анотирате кода на вашата функция с персонализирани отчети за регистриране, което ви помага да анализирате потока на изпълнение и производителността на вашите функции Lambda.
- AWS Lambda е платформа като услуга (PaaS). Помага ви да стартирате и изпълните своя бекенд код.
- AWS EC2 е инфраструктура като услуга (laaS). Той предоставя виртуализирани изчислителни ресурси.
- Разполагайте и управлявайте приложенията в AWS Cloud, без да се притеснявате за инфраструктурата, която изпълнява тези приложения.
- AWS Lambda се използва за стартиране и изпълнение на вашия Back-end код. Не можете да го използвате за внедряване на приложение.
- AWS Lambda ви помага за ETL процес.
- Най-добрата практика на функцията Lambda в AWS е да използвате правилното „изчакване“.
- Не е подходящо да се използват софтуерни пакети или приложения на AWS Lambda, които разчитат на базово извикване Windows RPC
- AWS Lambda е изключително гъвкав инструмент.
- Инструментът AWS Lambda не е подходящ за малки проекти.
- Често срещано събитие, което ще се задейства, когато използвате AWS Lambda, е Вмъкване, актуализиране и изтриване на данни Dynamo DB таблица.