Configurazione del comportamento di dimensionamento per gli strumenti di mappatura dell'origine degli eventi - 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à.

Configurazione del comportamento di dimensionamento per gli strumenti di mappatura dell'origine degli eventi

Puoi controllare il comportamento di scalabilità delle mappature delle sorgenti degli eventi di Amazon SQS tramite impostazioni di massima concorrenza o abilitando la modalità provisioning. Si tratta di opzioni che si escludono a vicenda.

Per impostazione predefinita, Lambda ridimensiona automaticamente i poller di eventi in base al volume dei messaggi. Quando abiliti la modalità provisioned, allochi un numero minimo e massimo di risorse di polling dedicate che rimangono pronte a gestire i modelli di traffico previsti. Ciò consente di ottimizzare le prestazioni della mappatura delle sorgenti degli eventi in due modi:

  • Modalità standard (impostazione predefinita): Lambda gestisce automaticamente la scalabilità, a partire da un numero limitato di poller e aumentando o diminuendo in base al carico di lavoro.

  • Modalità provisioned: è possibile configurare risorse di polling dedicate con limiti minimi e massimi, che consentono una scalabilità 3 volte più veloce e una capacità di elaborazione fino a 16 volte superiore.

Per le code standard, Lambda utilizza il long polling per eseguire il polling di una coda fino a quando questa non diventa attiva. Quando sono disponibili dei messaggi, Lambda inizia a elaborare cinque batch alla volta con cinque chiamate simultanee della funzione. Se i messaggi sono ancora disponibili, Lambda aumenta il numero di processi che leggono i batch fino a 300 chiamate simultanee in più al minuto. Il numero massimo di richiami che una mappatura dell'origine degli eventi può elaborare contemporaneamente è 1.250. Quando il traffico è basso, Lambda ridimensiona l'elaborazione a cinque chiamate simultanee e può ottimizzarla fino a un minimo di 2 richiami simultanei per ridurre le chiamate Amazon SQS e i costi corrispondenti. Tuttavia, questa ottimizzazione non è disponibile quando si abilita l'impostazione della massima concorrenza.

Per le code FIFO, Lambda invia messaggi alla funzione nell'ordine in cui li riceve. Quando invii un messaggio a una coda FIFO, è necessario specificare un ID gruppo di messaggi. Amazon SQS garantisce che i messaggi dello stesso gruppo vengano consegnati a Lambda in ordine. Quando Lambda legge i messaggi in batch, ogni batch può contenere messaggi provenienti da più di un gruppo di messaggi, ma l'ordine dei messaggi viene mantenuto. Se la funzione restituisce un errore, questa esegue nuovamente tutti i tentativi necessari sui messaggi interessati, prima che Lambda riceva ulteriori messaggi dallo stesso gruppo.

Quando si utilizza la modalità provisioned, ogni event poller può gestire fino all'1% MB/sec del throughput, fino a 10 richiami simultanei o fino a 10 chiamate API di polling di Amazon SQS al secondo. Lambda ridimensiona il numero di event poller tra il minimo e il massimo configurati, aggiungendo rapidamente fino a 1.000 simultanee al minuto per fornire un'elaborazione coerente e a bassa latenza degli eventi Amazon SQS. L'utilizzo della modalità provisioning comporta costi aggiuntivi. Per i prezzi dettagliati, consulta la pagina dei prezzi.AWS Lambda Ogni event poller utilizza lunghi sondaggi sulla coda SQS con un massimo di 10 sondaggi al secondo, il che comporta il costo delle richieste API SQS. Per ulteriori informazioni, consulta i prezzi di Amazon SQS. Puoi controllare la scalabilità e la concorrenza tramite queste impostazioni minime e massime del poller di eventi, anziché utilizzare l'impostazione di concorrenza massima, poiché queste opzioni non possono essere utilizzate insieme.

Nota

Non è possibile utilizzare contemporaneamente l'impostazione di massima concorrenza e la modalità di provisioning. Quando la modalità provisioned è abilitata, puoi controllare la scalabilità e la concorrenza della mappatura delle sorgenti di eventi di Amazon SQS attraverso il numero minimo e massimo di event poller.

Configurazione della simultaneità massima per le origini eventi di Amazon SQS

È possibile utilizzare l'impostazione di simultaneità massima per controllare il comportamento di dimensionamento delle origini eventi SQS. Tieni presente che non è possibile utilizzare la massima concorrenza con la modalità provisioning abilitata. L'impostazione della simultaneità massima limita il numero di istanze simultanee della funzione che l'origine dell'evento Amazon SQS può richiamare. La simultaneità massima è un'impostazione a livello di origine dell'evento. Se disponi di più origini degli eventi Amazon SQS mappate a una funzione, ogni origine di evento può avere un'impostazione di simultaneità massima separata. È possibile utilizzare la simultaneità massima per evitare che una coda utilizzi tutta la simultaneità riservata della funzione o il resto della quota di simultaneità dell'account. Non è previsto alcun addebito per la configurazione della simultaneità massima su un'origine di eventi Amazon SQS.

È importante sottolineare che la simultaneità massima e la simultaneità riservata sono due impostazioni indipendenti. Non è possibile impostare la simultaneità massima su un valore maggiore della simultaneità riservata della funzione. Dopo aver configurato la simultaneità massima, assicurati di non ridurre la simultaneità riservata della funzione a un valore inferiore alla simultaneità massima totale per tutte le origini di eventi Amazon SQS sulla funzione. Altrimenti, Lambda potrebbe limitare i messaggi.

Quando la quota di simultaneità del tuo account è impostata sul valore predefinito di 1.000, uno strumento di mappatura dell'origine degli eventi Amazon SQS può scalare per richiamare istanze di funzioni fino a questo valore, a meno che non si specifichi una simultaneità massima.

Se ricevi un aumento della quota di simultaneità predefinita del tuo account, Lambda potrebbe non essere in grado di richiamare istanze di funzioni simultanee fino alla tua nuova quota. Per impostazione predefinita, Lambda può scalare per richiamare fino a 1.250 istanze di funzioni simultanee per uno strumento di mappatura dell'origine degli eventi Amazon SQS. Se questo non è sufficiente per il tuo caso d'uso, contatta l' AWS assistenza per discutere di un aumento della contemporaneità di mappatura dei sorgenti degli eventi Amazon SQS del tuo account.

Nota

Per le code FIFO, le chiamate simultanee sono limitate dal numero di gruppi di messaggi IDs () messageGroupId o dall'impostazione di concorrenza massima, a seconda di quale sia inferiore. Ad esempio, se avete sei gruppi di messaggi IDs e la concorrenza massima è impostata su 10, la funzione può avere un massimo di sei chiamate simultanee.

Puoi configurare la simultaneità massima sugli strumenti di mappatura dell'origine degli eventi Amazon SQS nuovi ed esistenti.

Configurazione della simultaneità massima tramite la console Lambda
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Scegliere il nome della funzione.

  3. In Function overview (Panoramica delle funzioni), scegli SQS. Viene aperta la scheda Configuration (Configurazione).

  4. Seleziona il trigger Amazon SQS e scegli Edit (Modifica).

  5. In Maximum concurrency (Simultaneità massima), inserisci un numero compreso tra 2 e 1.000. Per disattivare la simultaneità massima, lascia la casella vuota.

  6. Scegli Save (Salva).

Configura la massima concorrenza utilizzando () AWS Command Line InterfaceAWS CLI

Utilizza il comando update-event-source-mapping con l’opzione --scaling-config. Esempio:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config '{"MaximumConcurrency":5}'

Per disattivare la simultaneità massima, inserisci un valore vuoto per --scaling-config:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config "{}"
Configurazione della simultaneità massima tramite l'API Lambda

Usa l'UpdateEventSourceMappingazione CreateEventSourceMappingo con un ScalingConfigoggetto.