Ce este AWS Lambda? Funcția Lambda cu exemple
⚡ Rezumat inteligent
AWS Lambda este o platformă de calcul fără server, bazată pe evenimente, de la Amazon Servicii web care rulează codul ca răspuns la declanșatoare, gestionând automat furnizarea, scalarea și administrarea serverului, astfel încât să vă concentrați doar pe logica de business.
Înainte de a explora AWS Lambda, este util să înțelegem ce înseamnă serverless.
Ce este fără server?
Serverless este un termen care se referă în general la aplicațiile serverless. Aplicațiile serverless sunt cele care nu necesită nicio furnizare de servere și nu necesită gestionarea serverelor.
Ce este AWS Lambda?
AWS Lambda 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 cu privire la ce resurse AWS să lansați sau cum le veți gestiona. În schimb, trebuie să puneți codul pe Lambda, iar acesta rulează.
În AWS Lambda, codul este executat pe baza răspunsului la evenimentele din serviciile AWS, cum ar fi adăugarea sau ștergerea fișierelor într-un bucket S3, o solicitare HTTP de la Amazon API Gateway și evenimente similare. 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 pe produsul principal și pe logica de business, în loc să gestionați controlul accesului la sistemul de operare (OS), aplicarea de patch-uri la OS, dimensionarea corectă, furnizarea, scalarea și așa mai departe.
Cum funcționează AWS Lambda?
Următorul exemplu AWS Lambda cu diagramă bloc explică funcționarea AWS Lambda în câțiva pași simpli:
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 limbajele de programare 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ă cod AWS Lambda atunci când este declanșat de serviciile AWS.
Pasul 5: AWS percepe taxe doar atunci când se execută codul AWS Lambda și nu în caz contrar.
Acest lucru se va întâmpla în următoarele scenarii:
- Încărcați fișiere într-o găleată S3
- Când un punct final HTTP get/post URL este lovit
- 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 fi taxat pentru serviciile AWS doar 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 într-un tabel 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.
- Te ajută să programezi evenimentul pentru a îndeplini sarcina la un interval de timp regulat.
- 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 diverse limbaje care rulează în același mediu de execuție de bază. Acest lucru vă ajută să configurați funcția în runtime. De asemenea, se potrivește cu mediul selectat. limbaj de programare.
Sursa evenimentului: O sursă de eveniment este un serviciu AWS, cum ar fi Amazon SNS sau un serviciu personalizat. Acest declanșator ajută funcția să își execute 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 jurnalizare vă permite să adnotați codul funcției cu instrucțiuni de jurnalizare personalizate, care vă ajută să analizați fluxul de execuție și performanța funcțiilor AWS Lambda.
Cum să utilizați AWS Lambda
Acum, vom învăța cum să folosim AWS Lambda cu un exemplu AWS Lambda:
Pas 1) Deschideți AWS Lambda URL
Accesează https://aws.amazon.com/lambda/ și Începeți.
Pas 2) Creează un cont
Apoi, creează un cont sau conectează-te cu contul tău existent.
Pas 3) Editați codul și faceți clic pe Executare
În următoarea pagină Lambda, editați codul și faceți clic pe Executare.
Pas 4) Verificați ieșirea
Veți vedea rezultatul.
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 (IaaS). Oferă resurse de calcul virtualizate. |
| Flexibilitate | Nu oferă nicio flexibilitate pentru autentificarea la instanțele de calcul. Vă permite să alegeți un sistem de operare personalizat sau un limbaj de execuție. | Oferă flexibilitatea de a selecta o varietate de instanțe, sisteme de operare personalizate, patch-uri de securitate și rețea etc. |
| Procesul de instalare | Trebuie să selectați mediul în care doriți să rulați codul și să îl trimiteți î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 | Este limitat 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 backend. Nu îl puteți utiliza pentru a implementa o aplicație. |
| Selectarea resurselor AWS | Îți oferă libertatea de a selecta resurse AWS; de exemplu, poți alege o instanță EC2 care este optimă în funcție de aplicația ta. | 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 este utilizat pentru o gamă largă de aplicații, cum ar fi:
- Te ajută cu 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)
- Copii de rezervă automate ale sarcinilor zilnice
- Backend-uri scalabile (aplicații mobile, dispozitive IoT)
- 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 pentru funcțiile AWS Lambda:
- Utilizați „timeout” potrivit.
- Folosește funcțiile de stocare locală, care are o dimensiune de 500 MB în folderul /temp.
- Minimizează utilizarea 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țiile în care Lambda nu este cu siguranță o opțiune ideală:
- Nu este potrivit să se utilizeze AWS Lambda pentru pachete software sau aplicații care se bazează pe apelarea funcțiilor subiacente. Windows RPC-uri.
- Dacă este utilizat pentru aplicații software personalizate cu acorduri de licențiere, cum ar fi procesarea documentelor MS-Office, Oracle baze de date etc.
- AWS Lambda nu ar trebui utilizat pentru procese hardware personalizate, cum ar fi accelerarea GPU și afinitatea hardware.
Avantajele utilizării AWS Lambda
Iată avantajele/beneficiile utilizării AWS Lambda:
- AWS Lambda este un instrument extrem de flexibil de utilizat.
- Te ajută să acordi acces la resurse, inclusiv VPC-uri.
- Autor direct cu un WYSIWEditor YG în consolă.
- Îl poți folosi ca plugin pentru Eclipse și 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ă plătești pentru timpul de calcul necesar, doar atunci când rulează codul tău.
- Puteți monitoriza performanța codului în timp real prin CloudWatch.
- Îți permite să rulezi codul fără a furniza sau gestiona niciun alt server.
- Te ajută să execuți codul doar atunci când este nevoie.
- Î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 și temporizatoare externe, astfel încât să poată fi utilizată pentru programare.
- Funcțiile Lambda sunt fără stare, 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 întregime pe AWS pentru infrastructură, deci nu puteți instala niciun software suplimentar dacă codul dvs. o cere.
- Execuția concurentă are o limită implicită de 1,000 per regiune, care poate fi mărită la cerere.
- Volumul memoriei sale poate varia între 128 MB și 10,240 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 de expirare pentru execuția codului său este limitat la 15 minute.





