Creazione e configurazione di una mappatura delle sorgenti di SQS eventi Amazon - 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à.

Creazione e configurazione di una mappatura delle sorgenti di SQS eventi Amazon

Per elaborare SQS i messaggi Amazon con Lambda, configura la coda con le impostazioni appropriate, quindi crea una mappatura delle sorgenti degli eventi Lambda.

Configurazione di una coda da utilizzare con Lambda

Se non disponi già di una SQS coda Amazon esistente, creane una che funga da origine di eventi per la tua funzione Lambda. La funzione Lambda e la SQS coda Amazon devono trovarsi nella stessa posizione Regione AWS, anche se possono trovarsi in posizioni diverse. Account AWS

Per consentire alla funzione di elaborare ogni batch di record, imposta il timeout di visibilità della coda di origine su almeno sei volte il timeout di configurazione della tua funzione. Il tempo supplementare consente a Lambda di riprovare se la funzione viene limitata durante l'elaborazione di un batch precedente.

Per impostazione predefinita, se Lambda rileva un errore in qualsiasi momento durante l'elaborazione di un batch, tutti i messaggi in quel batch tornano in coda. Dopo il timeout di visibilità, i messaggi diventano nuovamente visibili a Lambda. È possibile configurare la mappatura delle sorgenti degli eventi in modo da utilizzare risposte batch parziali per riportare in coda solo i messaggi non riusciti. Inoltre, se la tua funzione non riesce a elaborare un messaggio più volte, Amazon SQS può inviarlo a una coda di lettere morte. Ti consigliamo di impostare la politica di redrive della coda di origine maxReceiveCount su almeno 5. Ciò offre a Lambda alcune possibilità di riprovare prima di inviare i messaggi non riusciti direttamente alla coda delle lettere morte.

Configurazione delle autorizzazioni per il ruolo di esecuzione Lambda

La policy AWSLambdaSQSQueueExecutionRole AWS gestita include le autorizzazioni di cui Lambda ha bisogno per leggere dalla tua coda AmazonSQS. Puoi aggiungere questa politica gestita al ruolo di esecuzione della tua funzione.

Facoltativamente, se utilizzi una coda crittografata, devi anche aggiungere la seguente autorizzazione al tuo ruolo di esecuzione:

Creazione di una SQS mappatura della fonte degli eventi

Creare una mappatura dell'origine eventi per indicare a Lambda di inviare le voci dalla coda a una funzione Lambda. È possibile creare più mappature delle origini eventi per elaborare elementi da più code con una singola funzione. Quando Lambda richiama la funzione di destinazione, l'evento può contenere più voci, fino a una dimensione batch massima configurabile.

Per configurare la tua funzione per la lettura da AmazonSQS, collega la policy AWSLambdaSQSQueueExecutionRole AWS gestita al tuo ruolo di esecuzione. Quindi, crea una mappatura della fonte degli SQSeventi dalla console utilizzando i seguenti passaggi.

Per aggiungere autorizzazioni e creare un trigger
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Scegliere il nome della funzione.

  3. Quindi, seleziona la scheda Configuration (Configurazione) e poi Permissions (Autorizzazioni).

  4. In Nome del ruolo, scegli il link al tuo ruolo di esecuzione. Questo link apre il ruolo nella IAM console.

    Link al ruolo di esecuzione
  5. Seleziona Aggiungi autorizzazioni, quindi seleziona Collega policy.

    Allega le politiche nella IAM console
  6. Inserisci AWSLambdaSQSQueueExecutionRole nel campo di ricerca. Aggiungi questa politica al tuo ruolo di esecuzione. Si tratta di una policy AWS gestita che contiene le autorizzazioni di cui la funzione ha bisogno per leggere da una SQS coda Amazon. Per ulteriori informazioni su questa politica, consulta AWSLambdaSQSQueueExecutionRoleil AWS Managed Policy Reference.

  7. Torna alla tua funzione nella console Lambda. In Panoramica delle funzioni, scegliere Aggiungi trigger.

    Sezione di panoramica delle funzioni della console Lambda
  8. Scegliere un tipo di trigger.

  9. Configurare le opzioni richieste, quindi scegliere Add (Aggiungi).

Lambda supporta le seguenti opzioni di configurazione per le sorgenti di SQS eventi Amazon:

SQScoda

La SQS coda Amazon da cui leggere i record. La funzione Lambda e la SQS coda Amazon devono trovarsi nella stessa posizione Regione AWS, anche se possono trovarsi in posizioni diverse. Account AWS

Abilita trigger

Lo stato dello strumento di mappatura dell'origine degli eventi. L'opzione Enable trigger (Abilita trigger) è selezionata per impostazione predefinita.

Dimensione batch

Il numero massimo di record da inviare alla funzione in ogni batch. Per una coda standard il numero di registri può arrivare fino a 10.000. Per una FIFO coda, il massimo è 10. Per un batch di dimensioni superiori a 10, è inoltre necessario la finestra batch (MaximumBatchingWindowInSeconds) su almeno 1 secondo.

Configura il timeout della funzione per consentire il tempo sufficiente per elaborare un intero batch di articoli. Se gli elementi richiedono tempi di elaborazione più lunghi, scegli un batch di dimensioni più piccole. Un batch di grandi dimensioni può migliorare l'efficienza per i carichi di lavoro molto veloci o con costi di gestione molto elevati. Se si configura la concorrenza riservata sulla funzione, impostare un minimo di cinque esecuzioni simultanee per ridurre le probabilità di errori di limitazione (della larghezza di banda della rete) quando Lambda richiama la funzione.

Lambda passa tutti i record del batch alla funzione in un'unica chiamata, purché la dimensione totale degli eventi non superi la quota di dimensione del payload di invocazione per la chiamata sincrona (6 MB). Sia Lambda che Amazon SQS generano metadati per ogni record. Questi metadati aggiuntivi vengono conteggiati per la dimensione totale del payload e possono far sì che il numero totale di registri inviati in un batch sia inferiore alla dimensione del batch configurato. I campi di metadati SQS inviati da Amazon possono avere una lunghezza variabile. Per ulteriori informazioni sui campi di SQS metadati di Amazon, consulta la documentazione ReceiveMessageAPIoperativa nell'Amazon Simple Queue Service API Reference.

Finestra batch

Il tempo massimo in secondi per la raccolta dei record prima di richiamare la funzione. Questo parametro si applica solo alle code standard.

Se utilizzi una finestra batch superiore a 0 secondi, devi tenere conto dell'aumento del tempo di elaborazione nel timeout di visibilità della coda. Si consiglia di impostare il timeout di visibilità della coda ad un tempo sei volte maggiore rispetto al timeout della funzione, più il valore di MaximumBatchingWindowInSeconds. Ciò consente alla funzione Lambda di elaborare ogni batch di eventi e riprovare in caso di errore di throttling.

Quando i messaggi diventano disponibili, Lambda avvia l'elaborazione dei messaggi in batch. Lambda inizia a elaborare cinque batch alla volta con cinque chiamate simultanee della funzione. Se sono ancora disponibili dei messaggi, Lambda aggiunge un massimo di altre 300 istanze della funzione al minuto, fino a un massimo di 1.000 istanze di funzione. Per informazioni su simultaneità e dimensionamento delle funzioni, consulta Dimensionamento della funzione Lambda.

Per elaborare più messaggi, puoi ottimizzare la funzione Lambda per una maggiore velocità di trasmissione effettiva. Per ulteriori informazioni, consulta Comprendere la AWS Lambda scalabilità con le code SQS standard di Amazon.

Simultaneità massima

Il numero massimo di funzioni simultanee che l'origine eventi può richiamare. Per ulteriori informazioni, consulta Configurazione della concorrenza massima per le sorgenti di eventi Amazon SQS.

Criteri di filtro

Aggiungi i criteri di filtro per controllare gli eventi che Lambda invia alla funzione per l'elaborazione. Per ulteriori informazioni, consulta Controlla quali eventi Lambda invia alla tua funzione.