Explorarea bazelor AWS Lambda și execuția pas cu pas a unei funcții
În procesul de dezvoltare a aplicațiilor, obiectivul principal este de a oferi o experiență de utilizator excepțională. Pentru ca acest lucru să se întâmple, aplicația necesită un cod backend care să răspundă la diverse evenimente.
Totuși, gestionarea infrastructurii necesare pentru găzduirea și rularea codului backend implică dimensionarea, furnizarea și scalarea serverelor, administrarea actualizărilor sistemului de operare, aplicarea patch-urilor de securitate și monitorizarea constantă a performanței și disponibilității. Acest proces poate fi complex și consumator de timp.
Nu ar fi ideal să ne putem concentra exclusiv pe crearea de aplicații performante, fără a ne preocupa de infrastructura subiacentă? Aici intervine AWS Lambda, o soluție care ne permite să facem exact acest lucru.
Ce este AWS Lambda?
AWS Lambda este un serviciu de calcul serverless care vă permite să executați cod fără a administra servere. Cu AWS Lambda, puteți rula aplicații backend fără a vă ocupa de gestionarea infrastructurii. Tot ce trebuie să faceți este să încărcați codul, iar Lambda se va ocupa de execuție și scalare, asigurând disponibilitate ridicată.
Codul rulat în AWS Lambda este cunoscut sub numele de funcție lambda. Platforma suportă o gamă largă de limbaje de programare, printre care:
- Java
- Python
- C#
- Node.js
- Go
- PowerShell
- Ruby
De asemenea, oferă un API de rulare, care permite executarea de funcții scrise și în alte limbaje de programare.
Pentru a utiliza AWS Lambda, singura cerință este să aveți un cont AWS, prin intermediul căruia să accesați consola de management AWS.
AWS Lambda este adesea clasificat ca FaaS (Function-as-a-Service), subliniind natura sa de serviciu bazat pe funcții.
Caracteristicile AWS Lambda
Iată câteva dintre caracteristicile cheie oferite de AWS Lambda:
- Scalabilitate automată: AWS Lambda ajustează infrastructura în mod dinamic, fără intervenție manuală, reducând semnificativ efortul operațional.
- Versatilitate: Lambda poate fi integrat cu diverse servicii AWS, precum S3, CloudWatch, DynamoDB, API Gateway, Kinesis și CodeCommit, pentru a declanșa evenimente.
- Eficient din punct de vedere al costurilor: Se plătește doar pentru memoria utilizată de funcția lambda și pentru numărul de solicitări, fără a fi necesare investiții inițiale.
- Securitate: AWS Lambda utilizează AWS IAM pentru gestionarea rolurilor și politicilor de securitate, asigurând protecția resurselor.
- Toleranță la erori: Atât serviciile care rulează codul, cât și funcția în sine sunt proiectate pentru a oferi toleranță la erori, eliminând preocupările legate de indisponibilitatea aplicației.
Prețurile AWS Lambda
Costul AWS Lambda este determinat de durata de execuție și de cantitatea de memorie alocată funcției lambda. Puteți aloca până la 3008 MB de memorie unei funcții lambda, în trepte de 64 MB. Iată un tabel cu prețurile pentru diferite configurații de memorie, calculate pentru fiecare 100 de milisecunde de execuție.
Memorie | Preț per 100ms |
128MB | [Prețul corespunzător] |
256MB | [Prețul corespunzător] |
512MB | [Prețul corespunzător] |
1024MB | [Prețul corespunzător] |
2048MB | [Prețul corespunzător] |
3008MB | [Prețul corespunzător] |
Cum funcționează AWS Lambda?
- În primul rând, creați o funcție lambda și specificați informații de bază, cum ar fi limbajul de programare pe care îl veți folosi.
- Apoi, scrieți codul direct în editorul lambda sau încărcați-l sub formă de fișier zip.
- Odată ce codul este încărcat, AWS Lambda se ocupă de scalare, patch-uri și administrarea infrastructurii.
- Pentru a executa codul, funcția lambda trebuie declanșată de un eveniment, inițiat de un serviciu AWS extern. Un exemplu ar fi un eveniment creat de un bucket S3.
- În câteva secunde, Lambda este pregătită să execute funcția automat, la apariția evenimentului. AWS Lambda rulează codul la declanșarea evenimentului, gestionând serverele și monitorizându-le pentru dvs.
- În funcție de cerințele funcției (procesare intensivă sau simplă), AWS Lambda alocă resursele necesare (instanțe cu mai multă putere de procesare și memorie RAM pentru sarcinile complexe, sau instanțe mai mici și mai eficiente pentru sarcinile simple), optimizând astfel costurile.
Acesta este modul în care funcționează AWS Lambda. Pentru a ilustra, vom crea o demonstrație simplă folosind această tehnologie.
Crearea unei funcții AWS Lambda
Vom construi un joc simplu folosind o funcție lambda în Node.js. Această funcție va simula aruncarea unui zar, generând un număr aleatoriu între 1 și 6.
- Accesați consola de management AWS, căutați „Lambda” și selectați serviciul.
- În fereastra funcțiilor, faceți clic pe „Creare funcție”.
- Veți avea la dispoziție diverse opțiuni. Selectați „Autor de la zero” pentru a crea funcția de la început.
- Completați detaliile necesare: numele funcției și versiunea Node.js pe care doriți să o utilizați.
- De asemenea, va trebui să alegeți un rol de execuție. Dacă nu aveți niciun rol definit, creați unul nou. Apoi faceți clic pe „Creare funcție”.
- Veți primi o confirmare a creării funcției. Minimizați fereastra „Designer”.
- Veți fi redirecționat către fereastra „Cod funcție”.
- Introduceți codul de mai jos în editor sau încărcați un fișier zip. Vom folosi editorul intern AWS.
- Acest cod generează un număr aleatoriu între 1 și 6 și îl afișează când funcția este invocată.
exports.handler = async (event) => { const min = 1; const max = 6; const randomNum = Math.floor(Math.random() * (max - min + 1)) + min; const out="Dice throw result is: " + randomNum; return out; };
- Apăsați butonul „Test” din colțul din dreapta sus. Configurați un eveniment de testare, specificați un nume și faceți clic pe „Creare”.
- Apăsați „Salvare” și apoi „Testare”.
În secțiunea „Rezultatele execuției”, veți vedea rezultatul funcției: „Rezultatul aruncării zarului este 2” (numărul poate fi diferit, fiind aleatoriu).
- Accesați „Rezultatele detaliate ale execuției” pentru a vedea rezumatul funcției: ID-ul solicitării, durata, resursele, etc.
- Accesați secțiunea „Monitorizare” pentru a vizualiza jurnalele de observare și performanța funcției.
- În jurnalele CloudWatch, puteți analiza detaliile execuției funcției.
Concluzie
Începerea cu Lambda este simplă. Dacă aplicația dvs. necesită rularea de cod backend, luați în considerare utilizarea unei platforme serverless, cum ar fi AWS Lambda.
V-a plăcut articolul? Împărtășiți-l cu alții!