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.

  • ☁️ Model fără server: AWS Lambda rulează cod fără a furniza sau gestiona servere, eliminând aplicarea de patch-uri la sistemul de operare, scalarea și planificarea capacității.
  • Execuție bazată pe evenimente: Funcțiile se declanșează din serviciile AWS, cum ar fi S3, DynamoDB, API Gateway și SNS, care rulează numai atunci când apare un eveniment.
  • 🧩 Suport lingvistic: Lambda acceptă Node.js, Python, Java, Go, C# și Ruby, plus runtime-uri personalizate pentru alte limbaje de programare.
  • ???? Plată per utilizare: BillSe aplică numai în timp ce codul se execută, măsurat în milisecunde, cu un nivel gratuit lunar permanent de un milion de solicitări.
  • 🛠️ Concepte de bază: Funcțiile, runtime-urile, sursele de evenimente, straturile și fluxurile de jurnal definesc modul în care Lambda execută și gestionează codul.
  • 🤖 Asistență AI: Copilot GitHub și Amazon Q generează cod Lambda, în timp ce Lambda orchestrează inferența generativă a inteligenței artificiale prin Amazon piatră de bază.

Ce este AWS Lambda

Î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:

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 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.

Cum să utilizați AWS Lambda

Pas 2) Creează un cont

Apoi, creează un cont sau conectează-te cu contul tău existent.

Cum să utilizați AWS Lambda

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.

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 (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.

Întrebări frecvente

AWS Lambda acceptă nativ Node.js, Python, Java, Go, C#, PowerShell și Ruby. O API Runtime și suport pentru imagini de containere vă permit să rulați aproape orice alt limbaj, astfel încât echipele sunt rareori limitate de stiva lor preferată.

AWS Lambda include un nivel gratuit permanent de un milion de solicitări și 400,000 GB-secundă de calcul în fiecare lună. Dincolo de acest nivel, plătiți doar pentru solicitări și timpul de calcul utilizat efectiv de codul dvs., facturat la milisecundă.

O pornire la rece este scurta întârziere în care Lambda inițializează un nou mediu de execuție pentru o funcție care a fost inactivă. O puteți reduce cu concurență furnizată, pachete mai mici sau SnapStart pentru Java funcții.

Da. Pe lângă încărcarea unei arhive ZIP, Lambda vă permite să împachetați o funcție ca imagine container de până la 10 GB. Acest lucru este potrivit pentru dependențe mai mari și biblioteci de învățare automată, păstrând în același timp...ping același model de execuție fără server, bazat pe evenimente.

Lambda rulează funcții scurte, bazate pe evenimente, cu scalare automată și facturare pe milisecundă. AWS Fargate rulează sarcini de lucru containerizate mai lungi, fără a gestiona servere. Alegeți Lambda pentru răspunsuri rapide la evenimente și Fargate pentru sarcini de container stabile și de lungă durată.

Da. Lambda alimentează în mod obișnuit aplicațiile de inteligență artificială prin rularea unor inferențe ușoare și orchestrarea apelurilor către servicii precum Amazon Bedrock și SageMaker. Suportul pentru imaginile containerelor ajută la împachetarea bibliotecilor de învățare automată, în timp ce Lambda se ocupă de scalarea conductei de inteligență artificială generativă.

Da. Copilotul GitHub scrie funcții de tratare dintr-un comentariu sau nume, în timp ce Amazon Q Developer adaugă ajutor compatibil cu AWS pentru politicile IAM, CloudFormation și apelurile SDK, accelerând dezvoltarea fără server.

Acordați fiecărei funcții un rol IAM cu privilegii minime, stocați secretele în variabile de mediu criptate sau în Secrets Manager și plasați funcțiile sensibile într-un VPC. CloudWatch și CloudTrail înregistrează apoi activitatea pentru monitorizare și auditare.

Rezumați această postare cu: