Ce este AWS Lambda? Funcția Lambda cu exemple

Înainte de funcția AWS Lambda, să înțelegem:

Ce este fără server?

Serverless este un termen care se referă în general la aplicațiile fără server. Aplicațiile fără server sunt cele care nu necesită furnizare de server și nu necesită administrarea serverelor.

Ce este AWS Lambda?

AWS Lambdas este o platformă de calcul fără server, bazată pe evenimente, oferită de Amazon ca parte din Amazon Servicii Web. Prin urmare, nu trebuie să vă faceți griji despre ce resurse AWS să lansați sau cum le veți gestiona. În schimb, trebuie să puneți codul pe Lambda și rulează.

În AWS Lambda, codul este executat pe baza răspunsului la evenimentele din serviciile AWS, cum ar fi adăugarea/ștergerea fișierelor din compartimentul S3, cererea HTTP de la Amazon Gateway API etc. Cu toate acestea, Amazon Lambda poate fi folosit doar pentru a executa sarcini de fundal.

Funcția AWS Lambda vă ajută să vă concentrați asupra produsului de bază și asupra logicii de afaceri în loc să gestionați controlul accesului la sistemul de operare (OS), corecția sistemului de operare, dimensionarea corectă, furnizarea, scalarea etc.

Cum funcționează AWS Lambda?

Următorul exemplu AWS Lambda cu diagramă bloc explică funcționarea AWS Lambda în câțiva pași simpli:

Diagrama bloc AWS Lambda
Diagrama bloc AWS Lambda

Pasul 1: Încărcați mai întâi codul dvs. AWS Lambda în orice limbă acceptată de AWS Lambda. Java, Python, Go și C# sunt câteva dintre limbile care sunt acceptate de funcția AWS Lambda.

Pasul 2: Acestea sunt câteva servicii AWS care vă permit să declanșați AWS Lambda.

Pasul 3: AWS Lambda vă ajută să încărcați codul și detaliile evenimentului pentru care ar trebui să fie declanșat.

Pasul 4: Execută codul AWS Lambda atunci când este declanșat de serviciile AWS:

Pasul 5: AWS taxează numai atunci când se execută codul lambda AWS, și nu altfel.

Acest lucru se va întâmpla în următoarele scenarii:

  • Încărcați fișiere într-o găleată S3
  • Când se atinge URL-ul punctului final HTTP get/post
  • Pentru adăugarea/modificarea și ștergerea tabelelor Dynamo DB
  • În procesul de colectare a fluxurilor de date
  • Apăsați notificarea
  • Gazduirea site-ului
  • Trimitere e-mail

Notă: Trebuie să rețineți că veți taxa pentru serviciile AWS numai atunci când se execută codul AWS Lambda, altfel nu trebuie să plătiți nimic.

Evenimente care declanșează AWS Lambda

Iată evenimentele care vor fi declanșate atunci când utilizați AWS Lambda.

  • Inserarea, actualizarea și ștergerea datelor din tabelul Dynamo DB
  • Pentru a include notificări push în SNS
  • Pentru a căuta istoricul jurnalelor în CloudTrail
  • Intrarea într-un obiect S3
  • DynamoDB poate declanșa AWS Lambda ori de câte ori sunt date adăugate, modificate și șterse în tabel.
  • Vă ajută să programați evenimentul pentru a îndeplini sarcina la modelul de timp obișnuit.
  • Modificări ale obiectelor din găleți S3
  • Notificări trimise de la Amazon SNS.
  • AWS Lambda poate fi utilizat pentru a procesa jurnalele CloudTrail
  • API Gateway vă permite să declanșați AWS Lambda pe metodele GET/POST.

AWS Lambdas Concepts

Funcția:

O funcție este un program sau un script care rulează în AWS Lambda. Lambda trece evenimente de invocare în funcția dvs., care procesează un eveniment și returnează răspunsul acestuia.

Durate de rulare:

Runtime permite funcții în diferite limbi care rulează în același mediu de execuție de bază. Acest lucru vă ajută să vă configurați funcția în timpul de execuție. De asemenea, se potrivește cu selecția dvs limbaj de programare.

Sursa evenimentului:

O sursă de eveniment este un serviciu AWS, cum ar fi Amazon SNS sau un serviciu personalizat. Această funcție de declanșare vă ajută să-și executați logica.

Straturi Lambda:

Straturile Lambda sunt un mecanism important de distribuție pentru biblioteci, runtime personalizate și alte dependențe importante de funcții. Această componentă AWS vă ajută, de asemenea, să vă gestionați codul funcției de dezvoltare separat de codul neschimbat și resursele pe care le utilizează.

Înregistrează fluxuri:

Fluxul de jurnal vă permite să adnotați codul funcției cu instrucțiuni personalizate de înregistrare, care vă ajută să analizați fluxul de execuție și performanța funcțiilor dvs. AWS Lambda.

Cum să utilizați AWS Lambda

Acum, vom învăța cum să folosim AWS Lambda cu exemplul AWS Lambda:

Etapa 1) Pasul 1) Deschideți adresa URL AWS Lambda
Mergi la https://aws.amazon.com/lambda/ și Începeți

Cum să utilizați AWS Lambda

Etapa 2) Creați un cont
Apoi, creați un cont sau conectați-vă cu contul dvs. existent

Etapa 3) Editați codul și faceți clic pe Run,
În următoarea pagină Lambda,

  1. Editați codul
  2. Faceți clic pe Run

Cum să utilizați AWS Lambda

Etapa 4) Verificați ieșirea
Veți vedea ieșirea

Cum să utilizați AWS Lambda

AWS Lambda VS AWS EC2

Iată câteva diferențe majore între AWS Lambda și EC2.

parametrii AWS Lambdas AWS EC2
Definiție AWS Lambda este o platformă ca serviciu (PaaS). Vă ajută să rulați și să executați codul backend. AWS EC2 este o infrastructură ca serviciu (laaS). Oferă resurse de calcul virtualizate.
Flexibilitate Nu oferă nicio flexibilitate pentru a vă conecta pentru a calcula instanțe. Vă permite să alegeți un sistem de operare personalizat sau o limbă de rulare. Oferă flexibilitatea de a selecta varietatea de instanțe, sisteme de operare personalizate, corecții de securitate și rețea etc.
Procesul de instalare Trebuie să selectați mediul în care doriți să rulați codul și să introduceți codul în AWS Lambda. Pentru prima dată în EC2, trebuie să alegeți sistemul de operare și să instalați tot software-ul necesar și apoi să vă împingeți codul în EC2.
Restricții de mediu Se limitează la câteva limbi. Fără restricții de mediu.

AWS Lambda VS AWS Elastic Beanstalk

Iată câteva diferențe majore între AWS Lambda și Elastic Beanstalk.

parametrii AWS Elastic Beanstalk AWS Lambdas
Sarcina principala Implementați și gestionați aplicațiile pe AWS Cloud fără a vă face griji cu privire la infrastructura care rulează acele aplicații. AWS Lambda este utilizat pentru rularea și executarea codului dvs. de back-end. Nu îl puteți folosi pentru a implementa o aplicație.
Selectarea resurselor AWS Vă oferă libertatea de a selecta resursele AWS; De exemplu, puteți alege instanța EC2 care este optimă în funcție de aplicația dvs. Nu puteți selecta resursele AWS, cum ar fi un tip de instanță EC2, Lambda oferă resurse în funcție de volumul de lucru.
Tip de sistem Este un sistem cu stat. Este un sistem apatrid.

Cazuri de utilizare ale AWS Lambda

AWS Lambda utilizat pentru o gamă largă de aplicații precum:

  • Vă ajută pentru procesul ETL
  • Vă permite să efectuați procesarea fișierelor în timp real și procesarea fluxului în timp real
  • Utilizați pentru crearea de aplicații web
  • Utilizati in Amazon produse precum Alexa Chatbots și Amazon Echo/Alexa
  • Prelucrarea datelor (analitica streaming în timp real)
  • Backup-uri automate ale sarcinilor de zi cu zi
  • Back-end-uri scalabile (aplicații mobile, dispozitive loT)
  • Vă ajută să executați logica backend pe partea de server
  • Vă permite să filtrați și să transformați datele

Cele mai bune practici ale funcției Lambda

Iată câteva dintre cele mai bune practici ale AWS Funcții lambda:

  • Utilizați „timeout” potrivit.
  • Utilizați funcțiile de stocare locală, care are o dimensiune de 500 MB în folderul /temp
  • Minimizarea utilizării codului de pornire care nu este direct legat de procesarea evenimentului curent.
  • Ar trebui să utilizați monitorizarea CloudWatch încorporată a funcțiilor dvs. Lambda pentru a vizualiza și optimiza latența solicitărilor.

Când să nu utilizați AWS Lambda

Următoarele sunt situația în care Lambda nu este cu siguranță o opțiune ideală:

  • Nu este adecvat să utilizați pachete sau aplicații software AWS Lambda care se bazează pe apelurile subiacente Windows RPC-uri
  • Dacă este utilizat pentru aplicații software personalizate cu acorduri de licență precum procesarea documentelor MS-Office, Oracle baze de date etc.
  • AWS Lambda nu trebuie utilizat pentru procese hardware personalizate, cum ar fi accelerarea GPU, afinitatea hardware.

Avantajele utilizării AWS Lambda

Iată avantajele/beneficiile utilizării AWS lambda:

  • AWS Lambda este un instrument extrem de flexibil de utilizat
  • Vă ajută să acordați acces la resurse, inclusiv la VPC-uri
  • Autor direct cu WYSIWEditor YG în consolă.
  • Îl poți folosi ca plugin pentru Eclipse si Visual Studio.
  • Deoarece este o arhitectură fără server, nu trebuie să vă faceți griji cu privire la gestionarea sau furnizarea serverelor.
  • Nu trebuie să configurați niciunul Mașină virtuală.
  • Ajută dezvoltatorii să ruleze și să execute răspunsul codului la evenimente fără a construi nicio infrastructură.
  • Trebuie doar să o faci pentru timpul de calcul necesar, doar când se execută codul tău.
  • Puteți monitoriza performanța codului în timp real prin CloudWatch.
  • Vă permite să rulați codul fără aprovizionare sau să gestionați orice alt server
  • Vă ajută să executați codul numai atunci când este necesar
  • Îl puteți scala automat pentru a gestiona câteva solicitări pe zi și chiar pentru a accepta mai mult de mii de solicitări pe secundă.
  • AWS Lambda poate fi configurat cu ajutorul temporizatoarelor de evenimente externe pentru a efectua sarcini programate.
  • Funcția Lambda din AWS ar trebui configurată cu evenimente externe și temporizatoare, așadar; poate fi folosit pentru programare.
  • Funcțiile Lambda sunt apatride, astfel încât să poată fi scalate rapid.
  • AWS Lambda este rapid, așa că vă va executa codul în câteva milisecunde.

Limitările AWS Lambda

Iată care sunt dezavantajele/dezavantajele utilizării AWS Lambda:

  • Instrumentul AWS Lambda nu este potrivit pentru proiecte mici.
  • AWS Lambda se bazează în totalitate pe AWS pentru infrastructură, așa că nu puteți instala niciun software suplimentar dacă codul dvs. o cere.
  • Execuția concomitentă este limitată la 100
  • AWS Lambda depindea complet de AWS pentru infrastructură; nu puteți instala nimic software suplimentar dacă codul dvs. o cere.
  • Volumul său de memorie poate varia între 128 și 1536 MB.
  • Solicitarea evenimentului nu trebuie să depășească 128 KB.
  • Funcțiile Lambda vă ajută să scrieți jurnalele lor numai în CloudWatch. Acesta este singurul instrument care vă permite să monitorizați sau să vă depanați funcțiile.
  • Timpul său de execuție a codului este de doar 5 minute.

Rezumat

  • Serverless este un termen care se referă în general la aplicațiile fără server.
  • AWS Lambda este un astfel de serviciu de calcul fără server. Prin urmare, nu trebuie să vă faceți griji cu privire la ce resurse AWS să lansați sau cum le vor gestiona.
  • O funcție este un program sau un script care rulează în AWS serverless Lambda.
  • Runtime permite funcții în diferite limbi care rulează în același mediu de execuție de bază.
  • O sursă de eveniment este un serviciu AWS, cum ar fi Amazon SNS sau un serviciu personalizat.
  • Straturile Lambda sunt un mecanism important de distribuție pentru biblioteci, runtime personalizate și alte dependențe importante de funcții.
  • Fluxul de jurnal vă permite să adnotați codul funcției cu instrucțiuni personalizate de înregistrare, care vă ajută să analizați fluxul de execuție și performanța funcțiilor dvs. Lambda.
  • AWS Lambda este o platformă ca serviciu (PaaS). Vă ajută să rulați și să executați codul backend.
  • AWS EC2 este o infrastructură ca serviciu (laaS). Oferă resurse de calcul virtualizate.
  • Implementați și gestionați aplicațiile pe AWS Cloud fără a vă face griji cu privire la infrastructura care rulează acele aplicații.
  • AWS Lambda este utilizat pentru rularea și executarea codului dvs. de back-end. Nu îl puteți folosi pentru a implementa o aplicație.
  • AWS Lambda vă ajută pentru Procesul ETL.
  • Cea mai bună practică a funcției Lambda în AWS este să folosiți „timeout” potrivit.
  • Nu este adecvat să utilizați pachete sau aplicații software AWS Lambda care se bazează pe apelurile subiacente Windows RPC-uri
  • AWS Lambda este un instrument extrem de flexibil.
  • Instrumentul AWS Lambda nu este potrivit pentru proiecte mici.
  • Un eveniment comun care va fi declanșat atunci când utilizați AWS Lambda este inserarea, actualizarea și ștergerea datelor din tabelul Dynamo DB.