View a markdown version of this page

Configurazione della concorrenza riservata per una funzione evento - 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 della concorrenza riservata per una funzione evento

In Lambda, la concorrenza è il numero di richieste in corso che la tua Event Function sta attualmente gestendo. Sono disponibili due tipi di controlli di simultaneità:

  • Concorrenza riservata: imposta il numero massimo e minimo di istanze simultanee assegnate alla funzione evento. Quando una funzione evento ha una concorrenza riservata, nessun'altra funzione evento può utilizzare tale concorrenza. La simultaneità riservata è utile per garantire che le funzioni più critiche abbiano sempre una simultaneità sufficiente per gestire le richieste in arrivo. Inoltre, la simultaneità riservata può essere utilizzata per limitare la simultaneità ed evitare un sovraccarico di risorse a valle, come le connessioni al database. La simultaneità riservata funge sia da limite inferiore che da limite superiore: riserva la capacità specificata esclusivamente per la funzione, impedendone al contempo l’aumento oltre tale limite. La configurazione della simultaneità riservata per una funzione non comporta alcun addebito ulteriore.

  • Concorrenza fornita: si tratta del numero di ambienti di esecuzione preinizializzati assegnati alla funzione evento. Questi ambienti di esecuzione sono pronti a rispondere immediatamente alle richieste di funzioni in arrivo. La simultaneità fornita è utile per ridurre le latenze di avvii a freddo per le funzioni ed è progettata per rendere disponibili funzioni con tempi di risposta a due cifre in millisecondi. In genere, i carichi di lavoro interattivi traggono il massimo vantaggio da questa funzionalità. Si tratta di applicazioni in cui gli utenti avviano richieste, come le applicazioni Web e per dispositivi mobili, e sono le più sensibili alla latenza. I carichi di lavoro asincroni, come le pipeline di elaborazione dei dati, sono spesso meno sensibili alla latenza e quindi di solito non richiedono la simultaneità fornita. La configurazione della concorrenza fornita comporta costi aggiuntivi per l'utente. Account AWS

In questo argomento viene descritta in dettaglio la modalità gestire e configurare la simultaneità riservata. Per una panoramica concettuale di questi due tipi di controlli della simultaneità, consulta la sezione Simultaneità riservata e simultaneità fornita. Per informazioni sulla configurazione della simultaneità fornita, consulta la sezione Configurazione della concorrenza fornita per una funzione evento.

Nota

Le funzioni di eventi Lambda collegate a una mappatura dell'origine degli eventi Amazon MQ hanno una concorrenza massima predefinita. Per Apache Active MQ, il numero massimo di istanze simultanee è 5. Per Rabbit MQ, il numero massimo di istanze simultanee è 1. L'impostazione di una concorrenza riservata o fornita per la tua Event Function non modifica questi limiti. Per richiedere un aumento della simultaneità massima predefinita quando si utilizza Amazon MQ, contatta Supporto.

Configurazione della simultaneità riservata

Puoi configurare le impostazioni di concorrenza riservate per una funzione evento Lambda utilizzando la console Lambda o l'API Lambda.

Per riservare la concorrenza per una funzione evento (console)
  1. Apri la pagina Event Functions della console Lambda.

  2. Scegliete la funzione evento per cui desiderate riservare la concorrenza.

  3. Scegliere Configuration (Configurazione) e quindi scegliere Concurrency (Simultaneità).

  4. In Concurrency (Concorrenza), scegliere Edit (Modifica).

  5. Scegliere Reserve concurrency (Impegna concorrenza). Inserite la quantità di concorrenza da riservare per la funzione evento.

  6. Selezionare Salva.

Puoi prenotare fino al valore di Simultaneità dell'account non riservata meno 100. Le restanti 100 unità di concorrenza sono per le funzioni evento che non utilizzano la concorrenza riservata. Ad esempio, se il tuo account ha un limite di concorrenza di 1.000, non puoi riservare tutte le 1.000 unità di concorrenza a una singola funzione evento.

Se si tenta di riservare un valore eccessivo di simultaneità, si verifica un errore.

La prenotazione della concorrenza per una funzione evento influisce sul pool di concorrenza disponibile per altre funzioni di evento. Ad esempio, se prenoti 100 unità di contemporanea perfunction-a, le altre Funzioni evento del tuo account devono condividere le restanti 900 unità di concorrenza, anche se function-a non utilizza tutte le 100 unità di concorrenza riservate.

Per limitare intenzionalmente una funzione evento, impostate la sua concorrenza riservata su 0. Ciò impedisce alla Event Function di elaborare qualsiasi evento fino a quando non rimuovi il limite.

Per configurare la simultaneità riservata con l'API Lambda, utilizza le operazioni dell'API seguenti.

Ad esempio, per configurare la concorrenza riservata con AWS Command Line Interface (CLI), utilizzate put-function-concurrency il comando. Il comando seguente riserva 100 unità di concorrenza per una funzione evento denominata: my-function

aws lambda put-function-concurrency --function-name my-function \ --reserved-concurrent-executions 100

L'output restituito dovrebbe essere simile al seguente:

{ "ReservedConcurrentExecutions": 100 }

Stima accurata della concorrenza riservata richiesta per una funzione evento

Se la tua Event Function sta attualmente servendo traffico, puoi visualizzare facilmente le sue metriche di concorrenza utilizzando le metriche. CloudWatch In particolare, la ConcurrentExecutions metrica mostra il numero di chiamate simultanee per ogni funzione evento nel tuo account.

Grafico che mostra la concorrenza di una funzione evento nel tempo.

Il grafico precedente suggerisce che questa funzione evento soddisfa in media da 5 a 10 richieste simultanee in un dato momento e raggiunge un picco di 20 richieste in un giorno tipico. Supponiamo che nel tuo account siano presenti molte altre funzioni relative agli eventi. Se questa funzione evento è fondamentale per la tua applicazione e non desideri eliminare alcuna richiesta, utilizza un numero maggiore o uguale a 20 come impostazione di concorrenza riservata.

In alternativa, ricorda che è possibile calcolare la simultaneità anche utilizzando la seguente formula:

Concurrency = (average requests per second) * (average request duration in seconds)

Moltiplicando le richieste medie al secondo per la durata media delle richieste in secondi, si ottiene una stima approssimativa della quantità di simultaneità che è necessario riservare. Puoi stimare le richieste medie al secondo utilizzando il parametro Invocation e la durata media delle richieste in secondi utilizzando il parametro Duration. Per ulteriori dettagli, consulta Utilizzo delle CloudWatch metriche con Lambda.

Devi anche essere esperto dei vincoli di throughput a monte e a valle. Sebbene Lambda Event Functions si adatti perfettamente al carico, le dipendenze upstream e downstream potrebbero non avere le stesse capacità di throughput. Se devi limitare la scalabilità della tua Event Function, configura la concorrenza riservata sulla tua Event Function.