Какво е 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 в няколко лесни стъпки:

Блокова схема на 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/ и Започнете

Как да използвате AWS Lambda

Стъпка ) Създайте акаунт
След това създайте акаунт или влезте със съществуващия си акаунт

Стъпка ) Редактирайте кода и щракнете върху Изпълнение,
На следващата страница Lambda,

  1. Редактирайте кода
  2. Щракнете върху Изпълни

Как да използвате AWS Lambda

Стъпка ) Проверете изхода
Ще видите изход

Как да използвате AWS 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 таблица.