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