Un'introduzione ai trigger disponibili per invocare una funzione Lambda

Un'introduzione ai trigger disponibili per invocare una funzione Lambda
AWS Lambda è un fantastico servizio basato su cloud che ha rivoluzionato il mondo senza server. In realtà è un software come servizio (SaaS) che può essere impostato facilmente e rapidamente ed è utile per ridurre il budget complessivo dell'infrastruttura cloud. Quello che devi fare è semplicemente progettare il tuo codice ed eseguirlo usando la funzione Lambda.

Ora, il punto qui è come dovresti eseguire il tuo codice nella funzione e la risposta a questo è che esiste un lungo elenco di metodi attraverso i quali è possibile invocare o attivare le funzioni Lambda. Ciò include molti altri servizi AWS che possono essere utilizzati per chiamare la funzione desiderata quando richiesto.

In questo articolo, vedrai una breve spiegazione in merito ai servizi e alle tecniche che possono essere applicate per invocare le funzioni Lambda in Amazon.

Tipi di invocazioni

Prima di andare oltre, discutiamo dei seguenti due principali tipi di invocazioni che la funzione Lambda può gestire.

  • Invocazioni sincroni
  • Invocazioni asincroni
  1. Invocazioni sincroni
    In invocazioni sincrine, il servizio che invoca la lambda deve attendere fino a quando i risultati non vengono restituiti e quindi portando avanti il ​​resto del processo. Possiamo anche dire che l'output della funzione Lambda è richiesta dalla funzione o dal servizio stesso che ha invocato questa lambda.
  2. Invocazioni asincroni

    Qui, non aspetta che le funzioni Lambda forniscano i risultati a Invocatore. Questo è usato principalmente per le notifiche o per innescare altri eventi indipendenti in AWS. Il servizio che vuole invocare la funzione Lambda invia solo il grilletto e che l'operazione è in coda nella lambda e verrà eseguita a sua volta.

Diversi modi per invocare lambda

Qui, vedrai numerosi modi per invocare le funzioni Lambda. Sapere questo è molto utile per te la prossima volta che progetti la tua infrastruttura AWS semplice ma economica.

Invocare direttamente le funzioni Lambda

Nella maggior parte dei casi, le funzioni Lambda sono progettate per essere attivate utilizzando altri servizi, ma puoi invocarli direttamente utilizzando la console di gestione AWS, la CLI AWS e attraverso l'URL della funzione.

Invocando lambda dalla console di gestione

Quando si crea qualsiasi funzione Lambda nella tua console AWS, è possibile attivarla facilmente utilizzando l'opzione di test di prova nella console. IL Test Il pulsante è disponibile nella sezione Codice della funzione Lambda.

Puoi creare un evento personalizzato e utilizzare la console con il tuo modello di evento personalizzato.

In questo modo, la funzione Lambda può essere attivata dalla console AWS.

AWS CLI

AWS ti dà la possibilità di utilizzare tutte le sue risorse utilizzando l'interfaccia della riga di comando AWS. Qualsiasi funzione Lambda può anche essere invocata con questa CLI. Questo può essere molto efficace per testare le cose durante le fasi di sviluppo. Seguire il comando AWS CLI può essere usato come trigger per invocare la funzione Lambda.

ubuntu@ubuntu: ~ $ aws lambda invoche \
--funzione di funzione \
--Payload \
--Formatta clivana < base64 | raw-in-base64-out >

La funzione viene attivata correttamente e puoi anche osservarlo nell'output.

URL funzione

L'URL della funzione è in realtà un endpoint HTTP che puoi configurare per le funzioni Lambda. Questo URL può essere utilizzato per attivare le funzioni Lambda e puoi anche condividere questo URL con altri utenti anche al di fuori del tuo account AWS per invocare le funzioni Lambda. Sebbene dovresti stare attento agli URL della funzione, chiunque con questo link può attivare innumerevoli volte la funzione Lambda e tutti i costi saranno sulla tua testa.

Un URL di funzione può essere configurato durante la creazione e dopo aver creato la funzione Lambda. Per questo, vai semplicemente alle impostazioni avanzate nella sezione di configurazione e controlla il Abilita URL della funzione scatola.

Nel caso in cui non abbia allegato un URL di funzione durante la creazione della funzione Lambda, puoi farlo in seguito. Per questo, devi andare alla scheda Configurazione, selezionare l'URL della funzione e fare clic su Crea URL della funzione.

In questo modo, l'URL della funzione viene creato e utilizzato per invocare la funzione Lambda.

Invocare le funzioni di lambda utilizzando i servizi AWS

Molti servizi AWS possono essere configurati come trigger per invocare la funzione Lambda. Devi solo configurare i servizi AWS come trigger per invocare la funzione Lambda. Qui, passiamo attraverso tutti questi servizi con una spiegazione su come usarli come il tuo lambda fa scattare.

API Gateway

Questo è un servizio AWS che viene ampiamente utilizzato per creare e gestire le API nel modello dell'applicazione. Le API forniscono un modo molto flessibile di generare richieste o chiamate da un pacchetto software a un altro pacchetto che non possiamo esporre direttamente e vogliamo solo tenere dietro le quinte.

Per aggiungere qualsiasi servizio come trigger alla funzione Lambda, vai semplicemente alla funzione Lambda e fai clic su Aggiungi trigger.

Successivamente, puoi selezionare il servizio che si desidera collegare come trigger alla funzione Lambda. Per questa sezione, selezioniamo il gateway API come trigger per la funzione Lambda.

Successivamente, configura il servizio come si desidera che agisca nella struttura dell'applicazione.

Esistono due tipi di API supportate dal gateway API e questi possono essere utilizzati per invocare una funzione Lambda.

API HTTP: Sono usati per generare gli endpoint HTTP che vengono instradati alle funzioni Lambda. Le API HTTP danno meno funzionalità e sono meno costose da usare.

API REST: Se vuoi più funzionalità nella tua API, devi scegliere un'API REST. Queste API possono invocare la funzione Lambda e utilizzare gli stessi metodi HTTP, fornendo maggiore flessibilità e indipendenza.

Secchio S3

Ci sono molti casi d'uso in cui vedrai che i secchi S3 agiscono come trigger per invocare la funzione Lambda. È possibile configurare un secchio S3 per attivare la funzione Lambda per un evento S3 specifico.

Ad esempio, si desidera raccogliere i metadati di qualsiasi file quando viene caricato nel secchio. Per questo, si sviluppa un codice e lo distribuisci sulla funzione Lambda. Per il trigger Lambda, selezionare il secchio S3. Per il tipo di evento, seleziona Metti l'oggetto. In modo che, ogni volta che un nuovo file viene aggiunto al secchio, viene attivata la funzione Lambda e i metadati dell'oggetto vengono raccolti e archiviati nella posizione di destinazione quando si specifica.

Ci possono essere molti altri scenari in cui S3 può essere usato come trigger per invocare la funzione Lambda.

Carico Balancer

Supponiamo che la tua applicazione sia progettata per essere eseguita su funzioni Lambda in quanto la funzione Lambda sia la soluzione più economica per una semplice applicazione basata su cloud. Ora, per esporre l'applicazione agli utenti finali, potresti voler allegare un bilanciamento del carico di fronte. Per questa sezione, selezionare il bilanciamento del carico che funge da trigger per invocare la funzione Lambda. Ricorda che puoi impostare il bilanciamento del carico dell'applicazione solo per questa attività poiché altri bilanciatori del carico non sono supportati dalle funzioni Lambda.

Per aggiungere il bilanciamento del carico dell'applicazione alla funzione Lambda, è necessario prima creare un gruppo target e la funzione Lambda viene aggiunta a quel gruppo target. Ora, il gruppo target appena creato può essere aggiunto agli ascoltatori del bilanciamento del carico dell'applicazione.

Cloudfront

Amazon CloudFront è in realtà una CDN (Content Delivery Network) e viene utilizzato per memorizzare nella cache i dati dell'applicazione in posizioni Edge che sono molto più vicine agli utenti finali rispetto ai server dell'applicazione effettivi. Utilizzando CloudFront, puoi davvero migliorare i tempi di risposta per servire il contenuto statico agli utenti finali in tutto il mondo.

Le funzioni Lambda possono essere attivate utilizzando il servizio CloudFront. Per questo, è necessario distribuire la funzione Lambda su posizioni dei bordi in tutto il mondo noto come lambda@edge.

È possibile impostare CloudFront come trigger per inviare le richieste a Lambda@eGDE tramite CloudFront per migliorare i tempi di risposta. Poiché Lambda@Edge viene distribuito su tutte le posizioni dei bordi in tutto il mondo, gli utenti finali affrontano il tempo di risposta minimo accedendo alla posizione del bordo più vicino distribuita da lambda.

Per configurare questo, vai semplicemente a Aggiungi trigger e scegli il servizio CloudFront. Lì, vedrai il Distribuisci a Lambda@Edge opzione.

Ora, devi solo completare i passaggi di configurazione e avviarlo.

Registri CloudWatch

Ogni volta che pensi al monitoraggio nel cloud AWS, la prima cosa che viene in mente è CloudWatch in quanto questo è un servizio di monitoraggio molto vasto che può essere configurato per diversi servizi in modo molto utile.

I registri CloudWatch, come definisce il nome, è un servizio di registrazione che può essere utilizzato per archiviare tutti i tipi di registri. È possibile creare diversi gruppi di registro per servizi diversi per mantenere separati i registri. Questi registri possono essere utilizzati per attivare la funzione Lambda in base agli eventi che stanno ricevendo, indipendentemente dal servizio o dalla procedura che produce questi eventi.

È possibile configurare il trigger dalla console di funzione Lambda o direttamente dai registri CloudWatch. Per fare questo dalla console CloudWatch, vai semplicemente al servizio CloudWatch e apri i gruppi di registro. Qui, devi creare un filtro in abbonamento Lambda.

Successivamente, scegli la funzione Lambda che desideri e sei a posto.

Ora, ogni volta che CloudWatch ottiene quel flusso di registro, funge da trigger per invocare la funzione Lambda.

Eventbridge

Amazon EventBridge (precedentemente noto come CloudWatch Events) è un servizio AWS che consente di creare le regole dell'evento per attivare un servizio AWS specifico su un evento specifico che si verifica in un account AWS.

Esistono un'ampia varietà di regole che è possibile impostare per i servizi AWS (come la creazione di istanza EC2 o eventi di database RDS) e servizi di terze parti (come l'evento Push GitHub). Queste regole possono essere ulteriormente collegate ad altri servizi come le funzioni Lambda in modo tale che ogni volta che questa regola è soddisfatta, invoca la funzione Lambda.

Se hai già impostato una regola eventbridge, puoi facilmente aggiungere questa regola come trigger alla tua funzione Lambda. Seleziona Eventbridge come trigger e fornisci semplicemente il nome della regola.

Una regola esistente viene aggiunta qui come trigger, ma potresti anche creare una regola a questo punto.

DynamoDB

Potresti aver saputo che DynamoDB è solo un database NoSQL e appare come un servizio completamente separato in AWS. Questo è un database senza server senza configurazione e puoi semplicemente iniziare direttamente a creare tabelle. Queste tabelle DynamoDB possono essere configurate per agire come trigger per invocare le funzioni Lambda.

I dati del DynamoDB possono essere caricati su Lambda come input sotto forma di lotti e vengono elaborati utilizzando il codice che viene distribuito in Lambda.

Kinesis

Se vuoi raccogliere e analizzare i dati in tempo reale ad alto ritmo, puoi beneficiare di AWS Kinesis. Supponiamo di voler elaborare i dati raccolti dai flussi di dati di Kinesis utilizzando le funzioni Lambda. Devi semplicemente attivare la funzione Lambda ogni volta che i dati vengono registrati dalla kinesis.

Hai appena finito di configurare il flusso di dati di Kinesis per invocare la funzione Lambda.

SNS

È semplicemente un servizio di notifica che viene comunemente utilizzato per inviare notifiche da un servizio AWS all'altro perché a volte non c'è modo di configurare le notifiche direttamente da un servizio all'altro. Le funzioni Lambda possono essere attivate utilizzando questo servizio.

Crea prima un argomento SNS, quindi usalo per invocare la funzione Lambda.

Devi selezionare il nome del tuo argomento SNS. Non ci sono altre configurazioni o impostazioni.

Conclusione

Amazon Lambda è davvero una svolta nell'architettura cloud. Lo sviluppo e la distribuzione delle applicazioni non sono mai stati così facili e diretti prima. Ti consente di creare semplicemente il tuo codice in qualsiasi framework comune e caricare il tuo codice su lambda e viene eseguito. C'è un lungo elenco di altri servizi che possono essere accoppiati con AWS lambda e fungere da trigger per invocare la funzione Lambda solo quando è richiesta. Non esiste un costo di esecuzione continua del server, ma ti verrà addebitato a seconda del numero di trigger e del tempo di esecuzione del codice.