Cos'è AWS Lambda? Funzione Lambda con esempi

Sommario:

Anonim

Prima della funzione AWS Lambda, comprendiamo:

Cos'è Serverless?

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

Cos'è AWS Lambda?

AWS Lambda è una piattaforma di elaborazione serverless basata su eventi fornita da Amazon come parte di Amazon Web Services. Pertanto non devi preoccuparti di quali risorse AWS avviare o di come gestirle. Invece, è necessario inserire il codice su Lambda e viene eseguito.

In AWS Lambda il codice viene eseguito in base alla risposta di eventi nei servizi AWS come l'aggiunta / eliminazione di file nel bucket S3, la richiesta HTTP dal gateway API di Amazon, 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 di business invece di gestire il controllo degli accessi del sistema operativo (OS), l'applicazione di patch del sistema operativo, il corretto dimensionamento, il provisioning, il ridimensionamento, ecc.

In questo tutorial AWS Lambda per principianti imparerai:

  • Come funziona AWS Lambda?
  • Eventi che attivano AWS Lambda
  • Concetti di AWS Lambda
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Casi d'uso di AWS Lambda
  • Best practice per la funzione Lambda
  • Quando non utilizzare AWS Lambda
  • Vantaggi dell'utilizzo di AWS Lambda
  • Limitazioni di AWS Lambda

Come funziona AWS Lambda?

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

Passaggio 1: prima carica il codice AWS Lambda in qualsiasi lingua supportata da AWS Lambda. Java, Python, Go e C # sono alcuni dei linguaggi supportati dalla funzione AWS Lambda.

Passaggio 2: questi sono alcuni servizi AWS che consentono di attivare AWS Lambda.

Passaggio 3: AWS Lambda ti aiuta a caricare il codice e i dettagli dell'evento su cui dovrebbe essere attivato.

Fase 4: esegue AWS Lambda Code quando viene attivato dai servizi AWS:

Passaggio 5: AWS addebita solo quando viene eseguito il codice lambda AWS e non altrimenti.

Ciò accadrà nei seguenti scenari:

  • Carica i 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 di e-mail

Nota: tieni presente 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 dati tabella Dynamo DB
  • Per includere notifiche push in SNS
  • Per cercare la cronologia dei log in CloudTrail
  • Entrata in un oggetto S3
  • DynamoDB può attivare AWS Lambda ogni volta che sono presenti dati aggiunti, modificati ed eliminati nella tabella.
  • Aiuta a programmare l'evento per svolgere l'attività a intervalli regolari.
  • 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.

Concetti di AWS Lambda

Funzione:

Una funzione è un programma o uno script che viene eseguito in AWS Lambda. Lambda passa gli eventi di chiamata 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. Inoltre corrisponde al linguaggio di programmazione selezionato.

Origine evento:

Un'origine evento è un servizio AWS, come Amazon SNS, o un servizio personalizzato. Questa funzione 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 anche a gestire il codice della funzione di sviluppo separatamente dal codice e dalle risorse immutabili che utilizza.

Flussi di log:

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 tue funzioni AWS Lambda.

Come utilizzare AWS Lambda

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

Passaggio 1 ) Vai a https://aws.amazon.com/lambda/ e inizia

Passaggio 2 ) Crea un account o accedi con il tuo account esistente

Passaggio 3 ) Nella pagina Lambda successiva,

  1. Modifica il codice
  2. Fare clic su Esegui

Passaggio 4 ) Vedrai l'output

AWS Lambda VS AWS EC2

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

Parametri AWS Lambda AWS EC2
Definizione AWS Lambda è una piattaforma come servizio (PaaS). Ti aiuta a eseguire ed eseguire il tuo codice di backend. AWS EC2 è un'infrastruttura come servizio (laaS). Fornisce risorse di elaborazione virtualizzate.
Flessibilità Non offre alcuna flessibilità per accedere alle istanze di calcolo. 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 e rete, ecc.
Processo di installazione Devi selezionare l'ambiente in cui desideri eseguire il codice e inserire il codice 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 differenze principali tra AWS Lambda ed Elastic Beanstalk.

Parametri 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 ed eseguire il codice back-end. Non puoi usarlo 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 è possibile selezionare le risorse AWS, come un tipo di istanza EC2, Lambda offre risorse in base al carico di lavoro.
Tipo di sistema È un sistema con stato. È 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
  • Utilizzalo in prodotti Amazon come Alexa Chatbots e Amazon Echo / Alexa
  • Elaborazione dei dati (analisi di streaming in tempo reale)
  • Backup automatici delle attività quotidiane
  • Back-end scalabili (app mobili, dispositivi loT)
  • Ti aiuta a eseguire la logica di backend lato server
  • Consente di filtrare e trasformare i dati

Best practice per la funzione Lambda

Di seguito sono riportate alcune best practice per le funzioni di AWS Lambda:

  • Usa il giusto "timeout".
  • 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.
  • È necessario 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 sul richiamo di RPC Windows sottostanti
  • Se viene utilizzato per applicazioni software personalizzate con accordi di licenza come l'elaborazione di documenti MS-Office, database Oracle, ecc.
  • AWS Lambda non deve essere utilizzato per processi hardware personalizzati come accelerazione GPU, affinità hardware.

Vantaggi dell'utilizzo di AWS Lambda

Di seguito sono riportati i vantaggi / vantaggi dell'utilizzo di AWS lambda:

  • AWS Lambda è uno strumento altamente flessibile da utilizzare
  • Ti aiuta a concedere l'accesso alle risorse, inclusi i VPC
  • Crea direttamente con l'editor WYSIWYG nella console.
  • Puoi usarlo come plugin per Eclipse e Visual Studio.
  • Poiché si tratta di un'architettura serverless, non devi preoccuparti della gestione o del provisioning dei server.
  • Non è necessario configurare alcuna macchina virtuale.
  • Aiuta gli sviluppatori a eseguire ed eseguire la risposta del codice agli eventi senza creare alcuna infrastruttura.
  • È necessario solo per il tempo di elaborazione richiesto, solo quando il codice viene eseguito.
  • Puoi monitorare le prestazioni del tuo codice in tempo reale tramite CloudWatch.
  • Ti consente di eseguire il codice senza eseguire il 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 dovrebbe essere configurata con eventi e timer esterni in questo modo; può essere utilizzato per la pianificazione.
  • Le funzioni Lambda sono senza stato in modo che possano essere ridimensionate rapidamente.
  • AWS Lambda è veloce, quindi eseguirà il codice in pochi millisecondi.

Limitazioni di AWS Lambda

Di seguito sono riportati i contro / svantaggi dell'utilizzo di AWS Lambda:

  • Lo strumento AWS Lambda non è adatto per 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 dell'evento non deve superare i 128 KB.
  • Le funzioni Lambda ti aiutano a scrivere i loro 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 le gestiranno.
  • 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, come 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 consente di annotare il codice della funzione con istruzioni di registrazione personalizzate che 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 di backend.
  • AWS EC2 è un'infrastruttura come servizio (laaS). Fornisce risorse di elaborazione 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 puoi usarlo per distribuire un'applicazione.
  • AWS Lambda ti aiuta nel processo ETL.
  • La best practice della funzione Lambda in AWS consiste nell'utilizzare il giusto "timeout".
  • Non è appropriato utilizzare pacchetti software o applicazioni AWS Lambda che si basano sul richiamo di RPC Windows sottostanti
  • AWS Lambda è uno strumento altamente flessibile.
  • Lo strumento AWS Lambda non è adatto per piccoli progetti.
  • Un evento comune che verrà attivato quando utilizzi AWS Lambda è l'inserimento, l'aggiornamento e l'eliminazione dei dati nella tabella Dynamo DB.