In che modo Lambda elabora i record provenienti da fonti di eventi basate su stream e code - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

In che modo Lambda elabora i record provenienti da fonti di eventi basate su stream e code

Una mappatura dell'origine degli eventi è una risorsa Lambda che legge gli elementi dai servizi basati su stream e code e richiama una funzione con batch di record. I seguenti servizi utilizzano le mappature delle sorgenti degli eventi per richiamare le funzioni Lambda:

avvertimento

Le mappature delle sorgenti degli eventi Lambda elaborano ogni evento almeno una volta e può verificarsi un'elaborazione duplicata dei record. Per evitare potenziali problemi legati agli eventi duplicati, ti consigliamo vivamente di rendere idempotente il codice della funzione. Per ulteriori informazioni, consulta Come posso rendere idempotente la mia funzione Lambda nel Knowledge Center. AWS

In che modo le mappature delle sorgenti degli eventi differiscono dai trigger diretti

Alcuni AWS servizi possono richiamare direttamente le funzioni Lambda utilizzando i trigger. Questi servizi inviano eventi a Lambda e la funzione viene richiamata immediatamente quando si verifica l'evento specificato. I trigger sono adatti per eventi discreti ed elaborazione in tempo reale. Quando crei un trigger utilizzando la console Lambda, la console interagisce con il AWS servizio corrispondente per configurare la notifica degli eventi su quel servizio. Il trigger viene effettivamente archiviato e gestito dal servizio che genera gli eventi, non da Lambda. Ecco alcuni esempi di servizi che utilizzano i trigger per richiamare le funzioni Lambda:

Le mappature delle sorgenti degli eventi sono risorse Lambda create e gestite all'interno del servizio Lambda. Le mappature delle sorgenti degli eventi sono progettate per l'elaborazione di dati o messaggi in streaming ad alto volume dalle code. L'elaborazione dei record da uno stream o da una coda in batch è più efficiente rispetto all'elaborazione dei record singolarmente.

Comportamento di batching

Per impostazione predefinita, una mappatura delle origini eventi raggruppa i registri in un unico payload che Lambda invia alla funzione. Per ottimizzare il comportamento di batch, è possibile configurare una finestra di batch (MaximumBatchingWindowInSecondi) e una dimensione del batch (). BatchSize Una finestra di batch è il tempo massimo per la raccolta dei registri in un singolo payload. La dimensione del batch è il numero massimo di registri in un singolo batch. Lambda richiama la funzione in presenza dei tre criteri seguenti:

  • La finestra di dosaggio raggiunge il valore massimo. Il comportamento predefinito della finestra di batch varia a seconda dell'origine specifica dell'evento.

    • Per le origini eventi Kinesis, DynamoDB e Amazon SQS: la finestra di batch di default è 0 secondi. Ciò significa che Lambda invia i batch alla tua funzione solo quando viene soddisfatta la dimensione del batch o viene raggiunto il limite di dimensione del payload. Per impostare una finestra di batch, configura. MaximumBatchingWindowInSeconds È possibile impostare questo parametro su qualsiasi valore compreso tra 0 e 300 secondi con incrementi di 1 secondo. Se si configura una finestra di batch, la finestra successiva inizia non appena viene completata la precedente chiamata della funzione.

    • Per le origini degli eventi di Amazon MSK, Apache Kafka autogestito, Amazon MQ e Amazon DocumentDB la finestra di batch predefinita è 500 ms. È possibile configurare MaximumBatchingWindowInSeconds su qualsiasi valore da 0 secondi a 300 secondi con incrementi di secondi. Una finestra di batch inizia non appena arriva il primo registro.

      Nota

      Poiché è possibile modificare solo MaximumBatchingWindowInSeconds in incrementi di secondi, non è possibile tornare alla finestra di batch predefinita di 500 ms dopo averla modificata. Per ripristinare la finestra di batch predefinita, è necessario creare una nuova mappatura dell'origine eventi.

  • Le dimensioni del batch sono soddisfatte. La dimensione minima del batch è 1. La dimensione predefinita e massima del batch dipendono dall'origine eventi. Per i dettagli su questi valori, consulta le BatchSizespecifiche per il funzionamento dell'CreateEventSourceMappingAPI.

  • La dimensione del payload raggiunge 6 MB. Tale limite non è modificabile.

Il diagramma seguente illustra queste tre configurazioni. Supponiamo che una finestra di batch inizi a t = 7 secondi. Nel primo scenario, la finestra di batch raggiunge il suo massimo di 40 secondi a t = 47 secondi dopo aver accumulato 5 registri. Nel secondo scenario, la dimensione del batch raggiunge 10 prima della scadenza della finestra di batch, quindi la finestra di batch termina in anticipo. Nel secondo scenario, il valore massimo del payload viene raggiunta prima della scadenza della finestra di batch, quindi la finestra di batch termina in anticipo.

Una finestra di batch scade quando viene soddisfatto uno dei tre criteri seguenti: la finestra di batch raggiunge il valore massimo, la dimensione del batch viene raggiunta o la dimensione del payload raggiunge i 6 MB.

API della mappatura dell'origine eventi

Per gestire un'origine eventi con la AWS Command Line Interface (AWS CLI) o un SDK AWS, è possibile utilizzare le seguenti operazioni API: