AWS Lambda Tutorial: Вашето ръководство за Amazon Serverless Computing



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

Урок за AWS Lambda

Днес ще говорим за AWS Lambda. AWS Lambda е изчислителна услуга, предлагана от Amazon. Трябва да сте любопитни, тъй като има няколко други изчислителни услуги от AWS, като AWS EC2, AWS Elastic Beanstalk, AWS Opsworks и т.н., тогава защо друга изчислителна услуга? В този урок за AWS Lambda ще откриете какво е AWS Lambda, защо се използва и в кои случаи на употреба трябва да го обмислите.

Нека да видим как Amazon определя AWS Lambda и след това ще се задълбочим в ключовите концепции, ще разберем случая на употреба с практически накрая.





Ламбда безсървърни изчисления - aws lambda tutorial

как да отпечатате масив

Какво е AWS Lambda?

Amazon обяснява, AWS Lambda (& lambda) като „безсървърна“ изчислителна услуга, което означава, че разработчиците не трябва да се притесняват кои ресурси на AWS да стартират или как ще ги управляват, те просто поставят кода на ламбда и той работи , толкова е просто! Това ви помага да се съсредоточите върху основната компетентност, т.е. App Building или кода.



Къде ще използвам AWS Lambda?

AWS Lambda изпълнява вашия бекенд код, като автоматично управлява ресурсите на AWS. Когато казваме „управлявам“, това включва стартиране или прекратяване на екземпляри, проверки на състоянието, автоматично мащабиране, актуализиране или коригиране на нови актуализации и т.н.

И така, как работи?

Кодът, който искате да изпълнява Lambda, е известен като Ламбда функция . Както знаем, функция се изпълнява само когато е извикана, нали? Тук, Източник на събитието е субектът, който задейства ламбда функция и след това задачата се изпълнява.

Нека вземем пример, за да го разберем по-ясно.



Да предположим, че имате приложение за качване на изображения. Сега, когато качвате изображение, има много задачи, включени преди съхраняването му, като например преоразмеряване, прилагане на филтри, компресия и т.н.

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

В този пример разработчикът просто трябва да дефинира източника на събитието и да качи кода.

Нека сега разберем този пример с реални ресурси на AWS,

Фиг. Ламбда случай на употреба със S3

Тук ще качваме изображения под формата на обекти в кофа S3. Това качване на изображение в сегмента S3 ще се превърне в източник на събитие или в „спусък“.

Целият процес, както можете да видите на диаграмата, е разделен на 5 стъпки, нека разберем всяка една от тях.

  1. Потребителят качва изображение (обект) в изходната кофа в S3, към която има прикачено известие, за Lambda.
  2. Известието се чете от S3 и той решава къде да го изпрати.
  3. S3 изпраща известието до Lambda, това известие действа като извикващо повикване на ламбда функцията.
  4. Изпълнителната роля в Lambda може да бъде дефинирана чрез използване на IAM (Identity and Access Management), за да се даде разрешение за достъп за ресурсите на AWS, за този пример тук това би било S3.
  5. И накрая, той извиква желаната ламбда функция, която работи върху обекта, който е качен в сегмента S3.

Ако трябваше да решите този сценарий традиционно, заедно с разработката, щяхте да наемете хора за управление на следните задачи:

  • Размер, осигуряване и увеличаване на групата сървъри
  • Управление на актуализации на ОС
  • Прилагане на кръпки за сигурност и
  • Следете цялата тази инфраструктура за производителност и наличност.

Това би било скъпа, досадна и досадна задача, поради което необходимостта от AWS Lambda е оправдана.AWS Lambda е съвместим с Node.JS, Python и Java, така че можете да качите файла си в zip, да дефинирате източник на събитие и сте готови!

Можете да прочетете повече за S3 AWS тук за по-задълбочено разбиране.

Сега знаем -Как работи Lambda иКаква ламбда сърна с .

найде, нека разберем-

  • Къде да използвам ламбда?
  • Каква цел служи на Ламбда, товадруги услуги на AWS Compute не?

Ако трябва да създадете решение на проблем, трябва да можете да определите къде да използвате Lambda, нали?

И така, като архитект имате следните опции за изпълнение на задача:

  • AWS EC2
  • AWS Elastic Beanstalk
  • AWS OpsWorks
  • AWS Ламбда

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

AWS OpsWorks и AWS ElasticBeanstalk се използват за разполагане на приложение, така че нашият случай на употреба е не за да създадете приложение , но за изпълнение на back-end код.

Тогава защо не EC2?

Ако трябваше да използвате EC2, ще трябва да архитектирате всичко, т.е. балансиращ товар, обеми на EBS, софтуерни стекове и т.н. В ламбда не е нужно да се притеснявате за нищо, просто вмъкнете кода си, а AWS ще управлява останалото!

е масив обект в java

Например , в EC2 ще инсталирате софтуерните пакети на вашата виртуална машина, които биха поддържали вашия код, но в Lambda не е нужно да се притеснявате за каквато и да е виртуална машина, просто вмъкнете обикновен код и Lambda ще го изпълни вместо вас.

Но ако вашият код ще се изпълнява с часове и очаквате непрекъснат поток от заявки, вероятно трябва да отидете с EC2, защото архитектурата на Lambda е за спорадичен вид натоварване, при което ще има някои тихи часове и някои скокове в № на заявките също.

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

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

Можете да прочетете повече за EC2 AWS тук за по-задълбочено разбиране.

Ограничения на AWS Lambda

Някои ограничения са специфични за хардуера, а други са обвързани от архитектурата, нека обсъдим всички тях.

Хардуерни ограничения включват размера на диска, който е ограничен до 512 MB, паметта може да варира между 128 MB и 1536 MB. След това има някои други, като времето за изпълнение може да бъде максимизирано до само 5 минути, полезният товар на вашето искане може да бъде не повече от 6 MB, а тялото на вашата заявка е 128 KB. Полезният товар на тялото на заявката е като данните, които изпращате с искане „GET“ или „PUT“ в HTTP, където като тяло на заявката ще бъде видът на заявката, заглавията и т.н.

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

В този урок за AWS Lambda обсъдихме, че как да се изпълняват задачи в Lambda е „не“ досадно и досадно. Нека сега покрием и разходната част.

Ценообразуване в AWS Lambda

Подобно на повечето услуги на AWS, AWS Lambda също е услуга с заплащане на употреба, което означава, че плащате само това, което използвате, поради което се таксуват по следните параметри

  • Броят на заявки които правите за вашата ламбда функция
  • The продължителност за които се изпълнява вашият код.

Искания

  • Вие се таксувате за броя заявки, които правите във всичките си ламбда функции.
  • AWS Lambda отчита заявка всеки път, когато започне да се изпълнява в отговор на източник на събитие или извикване на повикване, включително извикване на тест от конзолата. Нека да разгледаме цените сега:
    • Първите 1 милион заявки всеки месец са безплатни.
    • 0,20 $ на милион заявки след това.

Продължителност

  • Продължителността се изчислява от момента, в който кодът ви започне да се изпълнява до момента, в който се върне или прекрати, се закръглява до най-близките 100ms.
  • Цената зависи от размера на паметта, която отделяте за вашата функция, като ви се таксуват $ 0,00001667 за всеки използван GB-секунда.

* Източник: официален уебсайт на AWS

Ако сте стигнали до тук, сте готови за практически ръце в Lambda. Хайде да се позабавляваме!

Практически: AWS Lambda DIY

Нека създадем Lambda функция, която ще регистрира „Обектът е добавен“, след като добавите обект към конкретна група в S3.

Етап 1: От конзолата за управление на AWS в раздела за изчисления изберете AWS Lambda.

Стъпка 2: На AWS Lambda Console щракнете върху „Създаване на Lambda функция“.

Стъпка 3: На следващата страница трябва да изберете план. Например ще изберем празната функция за нашия случай на употреба.

Стъпка 4: На следващата страница ще (1) зададете спусък, тъй като ще работим върху S3, (2) изберете спусъка S3 и след това (3) щракнете Напред.

Стъпка 5: На страницата за конфигурация попълнете подробностите. Можете да поставите свой собствен код или да копирате същия код от този случай на употреба. След това попълнете манипулатора и ролята, оставете разширените настройки такива, каквито са, в крайна сметка щракнете напред.

какво прави буферираният четец в java

Стъпка 6: На следващата страница прегледайте цялата информация и кликнете върху „Създаване на функция“.

Стъпка 7: Сега, тъй като създадохме функцията за сегмент S3, в момента, в който добавите файл към вашия сегмент S3, трябва да получите дневник за същия в CloudWatch, който е услуга за наблюдение от AWS.

Честито!Успешно изпълнихте функцията Lambda.

Надявам се да ви е харесало дълбокото гмуркане в AWS Lambda Tutorial. Това е една от най-желаните области на знания в екосистемата на AWS за работни позиции като Solutions Architect, Cloud Engineer, DevOps Engineer. Ето колекция от да ви помогне да се подготвите за следващото интервю за работа в AWS.

Ако сте намерили този урок за AWS Lambda подходящ, можете да проверите курса на Edureka на живо и ръководен от инструктори на , създаден съвместно от специалисти в бранша.

Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.