Cos'è AWS Lambda? Funzione Lambda con esempi

Prima della funzione AWS Lambda, capiamo:

Che cos'è Serverless?

Serverless è un termine che generalmente si riferisce alle applicazioni serverless. Le applicazioni serverless sono quelle che non necessitano di alcuna fornitura di server e non richiedono la gestione dei server.

Cos'è AWS Lambda?

AWS Lambda è una piattaforma informatica 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. Invece, devi inserire il codice su Lambda e funziona.

In AWS Lambda il codice viene eseguito in base alla risposta di eventi nei servizi AWS come aggiunta/eliminazione di file nel bucket S3, richiesta HTTP da Amazon Gateway API, ecc. Tuttavia, Amazon Lambda può essere utilizzato solo per eseguire attività in background.

La funzione AWS Lambda ti aiuta a concentrarti sul prodotto principale e sulla logica aziendale invece di gestire il controllo degli accessi del sistema operativo (SO), l'applicazione di patch al sistema operativo, il corretto dimensionamento, il provisioning, il dimensionamento, ecc.

Come funziona AWS Lambda?

Il seguente esempio di AWS Lambda con diagramma a blocchi spiega il funzionamento di AWS Lambda in pochi semplici passaggi:

Diagramma a blocchi di AWS Lambda
Diagramma a blocchi di AWS Lambda

Passo 1: Per prima cosa carica il tuo codice AWS Lambda in qualsiasi lingua supportata da AWS Lambda. Java, Python, Go 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 in altri casi.

Ciò accadrà nei seguenti scenari:

  • Carica file in un bucket S3
  • Quando viene raggiunto l'URL dell'endpoint HTTP get/post
  • 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: Dovresti ricordare che addebiterai i servizi AWS solo quando viene eseguito il codice AWS Lambda, altrimenti non dovrai pagare nulla.

Eventi che attivano AWS Lambda

Di seguito sono riportati gli eventi che verranno attivati ​​quando utilizzi AWS Lambda.

  • Inserimento, aggiornamento ed eliminazione dei dati della tabella Dynamo DB
  • 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 pianificare l'evento per svolgere l'attività 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 CloudTrail
  • API Gateway ti consente di attivare AWS Lambda sui metodi GET/POST.

AWS Lambda Concepts

Funzione:

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 eseguiti sullo stesso ambiente di esecuzione di base. Questo ti aiuta a configurare la tua funzione in runtime. Corrisponde anche a quello selezionato linguaggio di programmazione.

Origine evento:

Un'origine evento è un servizio AWS, ad esempio Amazon SNS o un servizio personalizzato. Questa funzione di trigger ti aiuta 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:

Il flusso di log ti consente di annotare il codice della tua funzione con istruzioni di registrazione personalizzate che ti aiutano ad analizzare il flusso di esecuzione e le prestazioni delle tue funzioni AWS Lambda.

Come utilizzare AWS Lambda

Ora impareremo come utilizzare AWS Lambda con l'esempio di AWS Lambda:

Passo 1 ) Passaggio 1) Apri l'URL di AWS Lambda
Andare a https://aws.amazon.com/lambda/ e inizia

Come utilizzare AWS Lambda

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,

  1. Modifica il codice
  2. Fai clic su Esegui

Come utilizzare AWS Lambda

Passo 4 ) Controllare l'output
Vedrai l'output

Come utilizzare AWS Lambda

AWS Lambda rispetto ad AWS EC2

Di seguito sono riportate alcune delle principali differenze tra AWS Lambda e EC2.

parametri 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 (laaS). Fornisce risorse informatiche virtualizzate.
Flessibilità Non offre alcuna flessibilità per accedere alle istanze di calcolo. Ti consente di scegliere un sistema operativo personalizzato o un runtime di lingua. Offre la flessibilità di selezionare la varietà di istanze, sistemi operativi personalizzati, patch di sicurezza, rete, ecc.
Processo di installazione Devi selezionare l'ambiente in cui desideri eseguire il codice e inserirlo in 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

Di seguito sono riportate alcune delle principali differenze tra AWS Lambda ed Elastic Beanstalk.

parametri Beanstalk AWS elastico 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 ed eseguire il codice back-end. Non è possibile utilizzarlo per distribuire un'applicazione.
Selezione delle risorse AWS Ti dà la libertà di selezionare le risorse AWS; Ad esempio, puoi scegliere l'istanza EC2 che è ottimale in base alla tua applicazione. Non puoi selezionare le risorse AWS, come un 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 utilizzato per un'ampia gamma di applicazioni come:

  • Ti aiuta per 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 automatizzati delle attività quotidiane
  • Backend scalabili (app mobili, dispositivi LoT)
  • 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 di AWS Funzioni lambda:

  • Utilizza il "timeout" corretto.
  • Utilizza le funzioni di archiviazione locale che ha una dimensione di 500 MB nella cartella /temp
  • Riduzione al minimo dell'uso del codice di avvio che 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 riportate le situazioni in cui Lambda non è sicuramente un'opzione ideale:

  • Non è appropriato utilizzare pacchetti software o applicazioni AWS Lambda che si basano sulle chiamate sottostanti Windows 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/vantaggi derivanti dall'utilizzo di AWS lambda:

  • AWS Lambda è uno strumento altamente flessibile da utilizzare
  • Ti aiuta a concedere l'accesso alle risorse, inclusi i VPC
  • Autore direttamente con WYSIWRedattore YG in consolle.
  • Puoi usarlo come plugin per Eclipse e Di Visual Studio.
  • Poiché si tratta 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.
  • Ne hai solo bisogno per il tempo di calcolo impiegato, solo quando il codice viene eseguito.
  • Puoi monitorare le prestazioni del tuo codice in tempo reale tramite CloudWatch.
  • Ti consente di eseguire il tuo codice senza provisioning o di gestire qualsiasi altro server
  • Ti aiuta a 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.
  • La funzione Lambda in AWS deve essere configurata con eventi e timer esterni quindi; può essere utilizzato per la pianificazione.
  • Le funzioni Lambda sono senza stato in modo che possano 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 puoi installare alcun software aggiuntivo se il tuo codice lo richiede.
  • L'esecuzione simultanea è limitata a 100
  • AWS Lambda dipendeva completamente da AWS per l'infrastruttura; non è possibile installare alcun software aggiuntivo se il codice lo richiede.
  • Il suo volume di memoria può variare tra 128 e 1536 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 timeout di esecuzione del codice è di soli 5 minuti.

Sommario

  • Serverless è un termine che generalmente si riferisce alle applicazioni serverless.
  • AWS Lambda è uno di questi servizi di elaborazione serverless. Pertanto, non devi preoccuparti di quali risorse AWS avviare o di come verranno gestite.
  • Una funzione è un programma o uno script che viene eseguito in AWS serverless Lambda.
  • Il runtime consente funzioni in vari linguaggi che vengono eseguiti sullo stesso ambiente di esecuzione di base.
  • Un'origine evento è un servizio AWS, ad esempio Amazon SNS o un servizio personalizzato.
  • I livelli Lambda sono un importante meccanismo di distribuzione per librerie, runtime personalizzati e altre importanti dipendenze di funzioni.
  • Il flusso di log ti consente di annotare il codice della funzione con istruzioni di registrazione personalizzate che ti aiutano ad analizzare il flusso di esecuzione e le prestazioni delle funzioni Lambda.
  • AWS Lambda è una piattaforma come servizio (PaaS). Ti aiuta a eseguire ed eseguire il tuo codice backend.
  • AWS EC2 è un'infrastruttura come servizio (laaS). Fornisce risorse informatiche virtualizzate.
  • Distribuisci e gestisci le app su AWS Cloud senza preoccuparti dell'infrastruttura che esegue tali applicazioni.
  • AWS Lambda viene utilizzato per eseguire ed eseguire il codice back-end. Non è possibile utilizzarlo per distribuire un'applicazione.
  • AWS Lambda ti aiuta per Processo ETL.
  • La best practice per la funzione Lambda in AWS consiste nell'utilizzare il "timeout" corretto.
  • Non è appropriato utilizzare pacchetti software o applicazioni AWS Lambda che si basano sulle chiamate sottostanti Windows RPC
  • AWS Lambda è uno strumento altamente flessibile.
  • Lo strumento AWS Lambda non è adatto a piccoli progetti.
  • Un evento comune che verrà attivato quando utilizzi AWS Lambda è l'inserimento, l'aggiornamento e l'eliminazione della tabella Dynamo DB dei dati.