AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Perché la mia funzione Lambda con un'origine degli eventi Amazon SQS non scala in modo ottimale?
La funzione AWS Lambda per l'origine degli eventi della mia coda Amazon Simple Queue Service (Amazon SQS) non si scala come previsto. Desidero configurare una concorrenza ottimale.
Risoluzione
Nota: quando configuri una coda Amazon SQS come origine degli eventi, le funzioni Lambda possono aumentare verticalmente in modo ottimale aggiungendo fino a un massimo di 300 istanze al minuto. Il numero massimo di esecuzioni concorrenti per le code standard è 1.250. Se utilizzi lo strumento di mappatura dell'origine degli eventi FIFO (first-in, first-out), le funzioni possono ridurre orizzontalmente la concorrenza al numero di gruppi di messaggi attivi.
Identifica e risolvi i problemi di invocazione delle funzioni Lambda
Per prevenire errori su vasta scala, Lambda limita il dimensionamento delle funzioni quando si verificano errori di invocazione. Dopo la risoluzione dei problemi, Lambda continua a scalare la funzione. Per ulteriori informazioni, consulta Strategia di backoff per le invocazioni non riuscite. Per risolvere gli errori di invocazione delle funzioni Lambda, consulta Gestione degli errori per un'origine degli eventi SQS in Lambda e Come faccio a risolvere i problemi relativi alla funzione Lambda?
Configura la funzione Lambda con una concorrenza ottimale
Concorrenza riservata
Se hai configurato la concorrenza riservata per la funzione, Lambda limita la larghezza di banda della rete della funzione quando questa raggiunge il valore riservato. Gli strumenti di mappatura dell'origine degli eventi non includono la concorrenza riservata e possono elaborare più messaggi della coda di quanti ne possano inviare alla funzione.
La concorrenza riservata minima per la funzione deve essere 1.250 per le code SQS standard e uguale al totale dei gruppi di messaggi attivi per le code FIFO. È consigliabile impostare la concorrenza riservata su un valore superiore al numero di gruppi di messaggi nella coda FIFO. Una concorrenza riservata inferiore può causare ritardi di elaborazione della coda FIFO e limitare la larghezza di banda della rete della funzione.
Importante: per limitare il numero di invocazioni concorrenti, al posto della concorrenza riservata utilizza l'impostazione della concorrenza massima per le origini degli eventi Amazon SQS.
Concorrenza predefinita
Per gli account AWS è impostata una quota di concorrenza predefinita pari a 1.000 per tutte le funzioni nello stesso account e nella stessa Regione AWS. Le funzioni scalano fino a raggiungere la massima concorrenza disponibile. Quando tutte le funzioni utilizzano il pool di 1.000 invocazioni concorrenti, Lambda limita la larghezza di banda della rete delle invocazioni.
Lambda limita la velocità con cui le funzioni scalano le istanze in modo che picchi improvvisi di traffico non causino un dimensionamento eccessivo. Inizialmente, le funzioni Lambda scalano in base alla velocità di dimensionamento della concorrenza. Poiché la velocità di dimensionamento della concorrenza è definita a livello di funzione, ogni funzione dell'account può scalare indipendentemente dalle altre. Inoltre, la velocità di dimensionamento della concorrenza è diversa dalla quota di concorrenza a livello di account, che indica la concorrenza complessiva disponibile per le funzioni.
Nota: la concorrenza predefinita è diversa da quella assegnata. Per ulteriori informazioni, consulta Informazioni sulla concorrenza riservata e sulla concorrenza assegnata.
Impostazione della concorrenza massima
Quando imposti la concorrenza massima per un'origine degli eventi, il valore si applica solo all'origine specifica. Le altre origini degli eventi senza concorrenza massima utilizzano la quota di concorrenza rimanente dell'account o la concorrenza riservata.
L'impostazione della concorrenza massima e della concorrenza riservata possono essere utilizzate insieme. È consigliabile impostare la concorrenza massima su un valore inferiore rispetto alla concorrenza riservata, in modo che la funzione non subisca limitazioni della larghezza di banda della rete.
Verifica che ci siano abbastanza messaggi nella coda Amazon SQS per consentire il dimensionamento della funzione Lambda
Se hai configurato una coda Amazon SQS per invocare una funzione Lambda, Lambda scala le invocazioni solo se ci sono messaggi nella coda.
Per verificare quanti messaggi nella coda devono essere elaborati utilizzando Amazon CloudWatch , vedi la metrica ApproximateNumberOfMessagesVisible della coda.
Se la metrica ha un valore basso o pari a 0, la funzione non può scalare.
Se la metrica ha un valore elevato e non ci sono problemi di invocazione, aumenta la dimensione del batch nella notifica degli eventi fino a quando la metrica Duration non raggiunge un picco. Per ulteriori informazioni, consulta Tipi di parametri per le funzioni Lambda.
Nota: la dimensione massima del batch per una coda Amazon SQS standard è di 10.000 record. Per le code FIFO, la dimensione massima del batch è di 10 record.
Verifica che Amazon SQS abbia aggiunto i messaggi a una coda
Per verificare che Amazon SQS abbia aggiunto i nuovi messaggi a una coda, esamina la metrica NumberOfMessagesSent della coda.
Verifica che il consumer abbia effettuato la chiamata API ReceiveMessage
Per verificare che il consumer abbia effettuato la chiamata API ReceiveMessage, analizza la metrica NumberOfMessagesReceived della coda.
Nota: i picchi nella metrica NumberOfEmptyReceives mostrano che il consumer ha effettuato la chiamata API ReceiveMessage, ma la chiamata non restituisce un messaggio dalla coda. Il problema si verifica quando nella coda non ci sono messaggi.
Utilizza la modalità provisioned con gli strumenti di mappatura dell'origine degli eventi di Amazon SQS
Per i carichi di lavoro utilizza la modalità provisioned in modo da ottimizzare il throughput dello strumento di mappatura dell'origine degli eventi e definire i limiti per i poller degli eventi. Lo strumento di mappatura dell'origine degli eventi di Amazon SQS configurato in modalità provisioned garantisce un dimensionamento 3 volte più veloce e una concorrenza 16 volte maggiore rispetto allo strumento di mappatura dell'origine degli eventi predefinito di Amazon SQS.
È consigliabile utilizzare la modalità provisioned per i carichi di lavoro SQS basati su eventi che hanno requisiti prestazionali rigorosi come, ad esempio, società di servizi finanziari che elaborano feed di dati di mercato e piattaforme di e-commerce che forniscono consigli personalizzati in tempo reale.
Per ulteriori informazioni, consulta AWS Lambda enhances event processing with provisioned mode for SQS event-source mapping (AWS Lambda migliora l'elaborazione degli eventi con la modalità provisioned per lo strumento di mappatura dell'origine degli eventi di SQS).
Nota: la modalità provisioned comporta costi aggiuntivi. Per maggiori informazioni, consulta Prezzi di AWS Lambda.
Informazioni correlate
Utilizzo di Lambda con Amazon SQS
Managing AWS Lambda function concurrency (Gestione della concorrenza delle funzioni AWS Lambda)
- Argomenti
- Compute
- Tag
- AWS Lambda
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 6 mesi fa