Abbiamo già confrontato EC2 e Lambda, ma cosa succede davvero quando una funzione Lambda viene eseguita? Capire il suo modello di esecuzione è fondamentale per scrivere funzioni performanti ed efficienti.
I Trigger: Cosa Avvia una Funzione Lambda?
Una funzione Lambda non è sempre in esecuzione. Viene attivata da un evento, chiamato trigger. Alcuni dei trigger più comuni sono:
- API Gateway: Una richiesta HTTP a un endpoint API. Questo è il modo in cui si costruiscono API REST serverless.
- S3: Un evento su un bucket S3, come il caricamento di un nuovo file (es. per generare automaticamente una thumbnail per un'immagine).
- DynamoDB Streams: Una modifica a una tabella del database NoSQL di AWS.
- SQS (Simple Queue Service): L'arrivo di un nuovo messaggio in una coda.
- EventBridge (CloudWatch Events): Un evento schedulato (come un cron job) o un evento custom generato da un'altra parte della tua applicazione.
L'Ambiente di Esecuzione e i "Cold Start"
Quando una funzione viene invocata per la prima volta (o dopo un periodo di inattività), AWS deve creare un nuovo ambiente di esecuzione per essa. Questo processo, chiamato cold start, include il download del codice, l'avvio di un micro-container e l'inizializzazione del runtime (es. Node.js). Questo può aggiungere una latenza di qualche centinaio di millisecondi alla prima esecuzione.
Dopo la prima esecuzione, l'ambiente viene mantenuto "caldo" (warm start) per un certo periodo, pronto a gestire le richieste successive in modo quasi istantaneo. Ottimizzare il codice per ridurre i cold start è una delle principali sfide dello sviluppo serverless.
Best Practice per le Funzioni Lambda
- Mantieni le Funzioni Piccole e Focalizzate: Ogni funzione dovrebbe fare una sola cosa.
- Gestisci le Dipendenze con Criterio: Includi solo le librerie strettamente necessarie per mantenere il pacchetto di deployment piccolo e ridurre i cold start.
- Non Mettere la Logica di Connessione al Database all'Interno della Funzione Handler: Inizializza le connessioni al database (es. con RDS) fuori dalla funzione principale, in modo che possano essere riutilizzate tra diverse invocazioni "calde".
- Usa le Variabili d'Ambiente: Per archiviare configurazioni e segreti, non scriverli direttamente nel codice.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza