Какво е AWS Lambda? Ламбда функция с примери

⚡ Умно обобщение

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

  • ☁️ Безсървърен модел: AWS Lambda изпълнява код без осигуряване или управление на сървъри, премахвайки необходимостта от корекции на операционната система, мащабиране и планиране на капацитета.
  • Изпълнение, управлявано от събития: Функции, задействани от AWS услуги като S3, DynamoDB, API Gateway и SNS, работещи само когато възникне събитие.
  • 🧩 Езикова поддръжка: Ламбда поддържа Node.js, Python, Java, Go, C# и Ruby, както и персонализирани среди за изпълнение за други езици.
  • 💰 Плащане за употреба: Billing се прилага само докато се изпълнява код, измерено в милисекунди, с постоянно месечно безплатно ниво от един милион заявки.
  • 🛠️ Основни понятия: Функциите, средата за изпълнение, източниците на събития, слоевете и лог потоците определят как Lambda изпълнява и управлява кода.
  • 🤖 AI помощ: GitHub Copilot и Amazon Q генерира Lambda код, докато Lambda оркестрира генеративни AI изводи чрез Amazon Основа.

Какво е AWS Lambda

Преди да проучите 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 в няколко лесни стъпки:

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

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

Стъпка 2) Създай профил

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

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

Стъпка 3) Редактирайте кода и щракнете върху „Изпълни“

На следващата страница Lambda редактирайте кода и щракнете върху „Изпълни“.

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

Ще видите резултата.

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

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 минути.

Въпроси и Отговори

AWS Lambda поддържа Node.js, Python, Java, Go, C#, PowerShell и Ruby. Поддръжката на Runtime API и образ на контейнер ви позволява да използвате почти всеки друг език, така че екипите рядко са ограничени от предпочитания от тях стек.

AWS Lambda включва постоянно безплатно ниво от един милион заявки и 400 000 GB секунди изчислителни ресурси всеки месец. Освен това плащате само за заявките и изчислителното време, което вашият код действително използва, таксувано на милисекунда.

Студеният старт е краткото забавяне, когато Lambda инициализира нова среда за изпълнение на функция, която е била в режим на готовност. Можете да го намалите с осигурена паралелност, по-малки пакети или SnapStart за... Java функции.

Да. Освен качването на ZIP архив, Lambda ви позволява да пакетирате функция като контейнерно изображение до 10 GB. Това е подходящо за по-големи зависимости и библиотеки за машинно обучение, като същевременно запазва...ping същият модел на изпълнение, управляван от събития и без сървър.

Lambda изпълнява кратки, управлявани от събития функции с автоматично мащабиране и таксуване на милисекунда. AWS Fargate изпълнява по-дълги контейнеризирани натоварвания без управление на сървъри. Изберете Lambda за бързи реакции на събития и Fargate за стабилни, дълготрайни контейнерни задачи.

Да. Lambda обикновено захранва приложения с изкуствен интелект, като изпълнява леки изводи и оркестрира повиквания към услуги като Amazon Bedrock и SageMaker. Поддръжката на изображения на контейнери помага за пакетирането на библиотеки за машинно обучение, докато Lambda обработва мащабирането на генеративния AI конвейер.

Да. Копилот на GitHub записва функции за обработка от коментар или име, докато Amazon Q Developer добавя AWS-съвместима помощ за IAM политики, CloudFormation и SDK извиквания, ускорявайки безсървърната разработка.

Предоставете на всяка функция IAM роля с най-ниски привилегии, съхранявайте тайните в криптирани променливи на средата или Secrets Manager и поставете чувствителни функции във VPC. CloudWatch и CloudTrail след това регистрират активността за наблюдение и одит.

Обобщете тази публикация с: