Cos'รจ AWS Lambda? Funzione Lambda con esempi
โก Riepilogo intelligente
AWS Lambda รจ una piattaforma di elaborazione serverless basata sugli eventi di Amazon Servizi Web che eseguono il tuo codice in risposta a determinati eventi, gestendo automaticamente il provisioning, il dimensionamento e la gestione dei server, in modo che tu possa concentrarti esclusivamente sulla logica di business.

Prima di esplorare AWS Lambda, รจ utile capire cosa significa serverless.
Che cos'รจ Serverless?
Serverless รจ un termine che si riferisce generalmente alle applicazioni serverless. Le applicazioni serverless sono quelle che non necessitano di alcun server e non richiedono la gestione di server da parte dell'utente.
Cos'รจ AWS Lambda?
AWS Lambda รจ una piattaforma di elaborazione serverless basata sugli eventi fornita da Amazon come parte di Amazon Servizi Web. Pertanto, non devi preoccuparti di quali risorse AWS avviare o di come gestirle. Ti basta inserire il codice su Lambda e questo verrร eseguito.
In AWS Lambda il codice viene eseguito in base alla risposta degli eventi nei servizi AWS come l'aggiunta o l'eliminazione di file in un bucket S3, una richiesta HTTP da Amazon API Gateway e eventi simili, tuttavia, Amazon Lambda puรฒ essere utilizzato solo per eseguire attivitร in background.
Le funzioni AWS Lambda ti aiutano a concentrarti sul tuo prodotto principale e sulla logica aziendale, anzichรฉ sulla gestione del controllo degli accessi al sistema operativo (OS), sull'applicazione di patch, sul dimensionamento, sul provisioning, sulla scalabilitร e cosรฌ via.
Come funziona AWS Lambda?
Il seguente esempio di AWS Lambda con diagramma a blocchi spiega il funzionamento di AWS Lambda in pochi semplici passaggi:
Passo 1: Per prima cosa carica il tuo codice AWS Lambda in qualsiasi lingua supportata da AWS Lambda. Java, PythonGo e C# sono alcuni dei linguaggi supportati dalla funzione AWS Lambda.
Passo 2: Questi sono alcuni servizi AWS che ti consentono di attivare AWS Lambda.
Passo 3: AWS Lambda ti aiuta a caricare il codice e i dettagli dell'evento in base al quale deve essere attivato.
Passo 4: Esegue il codice AWS Lambda quando viene attivato dai servizi AWS.
Passo 5: AWS addebita i costi solo quando il codice AWS Lambda viene eseguito, e non altrimenti.
Ciรฒ accadrร nei seguenti scenari:
- Carica file in un bucket S3
- Quando un endpoint HTTP get/post URL viene colpito
- Per aggiungere, modificare ed eliminare tabelle Dynamo DB
- Nel processo di raccolta dei flussi di dati
- Notifica push
- Hosting del sito web
- Invio e-mail
Nota: ร importante ricordare che i servizi AWS vengono addebitati solo quando il codice AWS Lambda viene eseguito; in caso contrario, non รจ previsto alcun pagamento.
Eventi che attivano AWS Lambda
Ecco gli eventi che verranno attivati โโquando si utilizza AWS Lambda.
- Inserimento, aggiornamento ed eliminazione di dati in una tabella DynamoDB
- Per includere le notifiche push in SNS
- Per cercare la cronologia dei log in CloudTrail
- Ingresso in un oggetto S3
- DynamoDB puรฒ attivare AWS Lambda ogni volta che vengono aggiunti, modificati ed eliminati dati nella tabella.
- Ti aiuta a programmare l'evento per svolgere il compito secondo uno schema temporale regolare.
- Modifiche agli oggetti nei bucket S3
- Notifiche inviate da Amazon SNS.
- AWS Lambda puรฒ essere utilizzato per elaborare i log di CloudTrail.
- API Gateway ti consente di attivare AWS Lambda sui metodi GET/POST.
AWS Lambda Concepts
Funzionalitร : Una funzione รจ un programma o uno script eseguito in AWS Lambda. Lambda passa gli eventi di invocazione alla tua funzione, che elabora un evento e restituisce la sua risposta.
Autonomia: Il runtime consente funzioni in vari linguaggi che vengono eseguite sullo stesso ambiente di esecuzione di base. Questo ti aiuta a configurare la tua funzione nel runtime. Corrisponde anche alla tua selezione linguaggio di programmazione.
Origine evento: Un'origine evento รจ un servizio AWS, ad esempio Amazon SNS, ovvero un servizio personalizzato. Questo trigger aiuta la funzione a eseguire la sua logica.
Strati Lambda: I livelli Lambda sono un importante meccanismo di distribuzione per librerie, runtime personalizzati e altre importanti dipendenze di funzioni. Questo componente AWS ti aiuta inoltre a gestire il codice della funzione di sviluppo separatamente dal codice immutabile e dalle risorse che utilizza.
Flussi di registro: Log Stream consente di annotare il codice delle funzioni con istruzioni di logging personalizzate che aiutano ad analizzare il flusso di esecuzione e le prestazioni delle funzioni AWS Lambda.
Come utilizzare AWS Lambda
Ora impareremo come utilizzare AWS Lambda con un esempio pratico:
Passo 1) Apri AWS Lambda URL
Vai su https://aws.amazon.com/lambda/ e iniziamo.
Passo 2) Creare un account
Successivamente, crea un account o accedi con il tuo account esistente.
Passo 3) Modifica il codice e fai clic su Esegui
Nella pagina Lambda successiva, modifica il codice e fai clic su Esegui.
Passo 4) Controlla l'output
Vedrai il risultato.
AWS Lambda rispetto ad AWS EC2
Ecco alcune differenze principali tra AWS Lambda e EC2.
| Scheda Sintetica | AWS Lambda | AWS EC2 |
| Definizione | AWS Lambda รจ una piattaforma come servizio (PaaS). Ti aiuta a eseguire ed eseguire il tuo codice backend. | AWS EC2 รจ un'infrastruttura come servizio (IaaS). Fornisce risorse di calcolo virtualizzate. |
| Flessibilitร | Non offre alcuna flessibilitร per l'accesso alle istanze di calcolo. Consente di scegliere un sistema operativo o un ambiente di runtime del linguaggio personalizzato. | Offre la flessibilitร di selezionare una varietร di istanze, sistemi operativi personalizzati, patch di sicurezza, rete, ecc. |
| Processo di installazione | ร necessario selezionare l'ambiente in cui si desidera eseguire il codice e caricarlo su AWS Lambda. | Per la prima volta in EC2, devi scegliere il sistema operativo e installare tutto il software richiesto, quindi inserire il codice in EC2. |
| Restrizioni ambientali | ร limitato a poche lingue. | Nessuna restrizione ambientale. |
AWS Lambda vs AWS Elastic Beanstalk
Ecco alcune delle principali differenze tra AWS Lambda ed Elastic Beanstalk.
| Scheda Sintetica | AWS Elastic Beanstalk | AWS Lambda |
| Compito principale | Distribuisci e gestisci le app su AWS Cloud senza preoccuparti dell'infrastruttura che esegue tali applicazioni. | AWS Lambda viene utilizzato per eseguire il codice back-end. Non รจ possibile utilizzarlo per distribuire un'applicazione. |
| Selezione delle risorse AWS | Ti offre la libertร di selezionare le risorse AWS; ad esempio, puoi scegliere un'istanza EC2 ottimale in base alla tua applicazione. | Non รจ possibile selezionare le risorse AWS, come ad esempio il tipo di istanza EC2; Lambda offre risorse in base al carico di lavoro. |
| Tipo di sistema | ร un sistema statale. | ร un sistema apolide. |
Casi d'uso di AWS Lambda
AWS Lambda viene utilizzato per un'ampia gamma di applicazioni, tra cui:
- Ti aiuta con il Processo ETL
- Consente di eseguire l'elaborazione dei file in tempo reale e l'elaborazione del flusso in tempo reale
- Utilizzare per creare applicazioni web
- Usare in Amazon prodotti come Alexa Chatbots e Amazon Eco/Alexa
- Elaborazione dei dati (analisi di streaming in tempo reale)
- Backup automatici delle attivitร quotidiane
- Backend scalabili (app per dispositivi mobili, dispositivi IoT)
- Ti aiuta a eseguire la logica di backend lato server
- Consente di filtrare e trasformare i dati
migliori pratiche della funzione Lambda
Ecco alcune best practice per le funzioni AWS Lambda:
- Utilizza il "timeout" corretto.
- Sfrutta le funzionalitร della memoria locale, che ha una dimensione di 500 MB nella cartella /temp.
- Ridurre al minimo l'utilizzo di codice di avvio non direttamente correlato all'elaborazione dell'evento corrente.
- Dovresti utilizzare il monitoraggio CloudWatch integrato delle funzioni Lambda per visualizzare e ottimizzare le latenze delle richieste.
Quando non utilizzare AWS Lambda
Di seguito sono elencate le situazioni in cui Lambda non รจ certamente la soluzione ideale:
- Non รจ appropriato utilizzare AWS Lambda per pacchetti software o applicazioni che dipendono dalla chiamata di funzioni sottostanti Windows Chiamate in linea (RPC).
- Se viene utilizzato per applicazioni software personalizzate con accordi di licenza come l'elaborazione di documenti MS-Office, Oracle banche dati, ecc.
- AWS Lambda non deve essere utilizzato per processi hardware personalizzati come l'accelerazione GPU e l'affinitร hardware.
Vantaggi dell'utilizzo di AWS Lambda
Ecco i vantaggi/benefici dell'utilizzo di AWS Lambda:
- AWS Lambda รจ uno strumento estremamente flessibile.
- Consente di concedere l'accesso alle risorse, incluse le VPC.
- Autore direttamente con un WYSIWRedattore YG nella consolle.
- Puoi usarlo come plugin per Eclipse and Di Visual Studio.
- Trattandosi di un'architettura serverless, non รจ necessario preoccuparsi della gestione o del provisioning dei server.
- Non รจ necessario configurarne alcuno Macchina virtuale.
- Aiuta gli sviluppatori a eseguire ed eseguire la risposta del codice agli eventi senza costruire alcuna infrastruttura.
- Dovrai pagare solo per il tempo di elaborazione effettivo, ovvero solo quando il tuo codice viene eseguito.
- Puoi monitorare le prestazioni del tuo codice in tempo reale tramite CloudWatch.
- Consente di eseguire il codice senza dover configurare o gestire alcun altro server.
- Consente di eseguire il codice solo quando necessario.
- Puoi ridimensionarlo automaticamente per gestire poche richieste al giorno e persino supportare piรน di migliaia di richieste al secondo.
- AWS Lambda puรฒ essere configurato con l'aiuto di timer di eventi esterni per eseguire attivitร pianificate.
- In AWS, le funzioni Lambda devono essere configurate con eventi e timer esterni per poter essere utilizzate nella pianificazione.
- Le funzioni Lambda sono stateless, quindi possono essere scalate rapidamente.
- AWS Lambda รจ veloce, quindi eseguirร il tuo codice in pochi millisecondi.
Limitazioni di AWS Lambda
Ecco i contro/svantaggi dell'utilizzo di AWS Lambda:
- Lo strumento AWS Lambda non รจ adatto a piccoli progetti.
- AWS Lambda si basa interamente su AWS per l'infrastruttura, quindi non รจ possibile installare alcun software aggiuntivo se il codice lo richiede.
- L'esecuzione simultanea ha un limite predefinito di 1,000 per regione, che puรฒ essere aumentato su richiesta.
- La sua capacitร di memoria puรฒ variare tra 128 MB e 10,240 MB.
- La richiesta di evento non deve superare i 128 KB.
- Le funzioni Lambda ti aiutano a scrivere i relativi log solo in CloudWatch. Questo รจ l'unico strumento che ti consente di monitorare o risolvere i problemi delle tue funzioni.
- Il tempo di esecuzione del codice รจ limitato a 15 minuti.




