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

In Lambda, la simultaneità è il numero di richieste in transito che la funzione sta gestendo attualmente. Sono disponibili due tipi di controlli di simultaneità:

  • Simultaneità riservata: rappresenta il numero massimo di istanze simultanee allocate alla funzione. Quando una funzione ha la simultaneità riservata, nessun'altra funzione può utilizzare tale simultaneità. La concorrenza riservata è utile per garantire che le funzioni più critiche abbiano sempre una concorrenza sufficiente per gestire le richieste in arrivo. La configurazione della simultaneità riservata per una funzione non comporta alcun addebito ulteriore.

  • Simultaneità fornita: il numero di ambienti di esecuzione pre-inizializzati che desideri allocare alla funzione. Questi ambienti di esecuzione sono pronti a rispondere immediatamente alle richieste di funzioni in arrivo. La concorrenza fornita è utile per ridurre le latenze di avvio a freddo delle funzioni. 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.

Nota

Le funzioni Lambda collegate a uno strumento di mappatura dell'origine degli eventi Amazon MQ hanno una simultaneità 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 della simultaneità sottoposta a provisioning o riservata per la funzione non modifica questi limiti. Per richiedere un aumento della simultaneità massima predefinita quando si utilizza Amazon MQ, contatta AWS Support.

Configurazione della simultaneità riservata

È possibile configurare le impostazioni di concorrenza riservate per una funzione utilizzando la console Lambda o Lambda. API

Riserva della simultaneità per una funzione (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli la funzione per la quale desideri prenotare la simultaneità.

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

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

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

  6. Seleziona Salva.

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

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

La riserva della simultaneità per una funzione può influire sul pool di simultaneità disponibile per altre funzioni. Ad esempio, se riservi 100 unità di simultaneità per function-a, le altre funzioni del tuo account devono condividere le 900 unità di simultaneità rimanenti, anche se function-a non utilizza tutte le 100 unità di simultaneità riservata.

Per limitare intenzionalmente una funzione, imposta la simultaneità riservata su 0. In questo modo, viene interrotta la capacità della funzione di elaborare ulteriori eventi fino a quando il limite non viene rimosso.

Per configurare la concorrenza riservata con API Lambda, usa le API seguenti operazioni.

Ad esempio, per configurare la concorrenza riservata con AWS Command Line Interface (CLI), utilizzate il comando. put-function-concurrency Il comando seguente riserva 100 unità di simultaneità per una funzione 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

Se la tua funzione attualmente serve traffico, puoi visualizzare facilmente le sue metriche di concorrenza utilizzando le metriche. CloudWatch In particolare, il parametro ConcurrentExecutions mostra il numero di chiamate simultanee per ciascuna funzione del tuo account.

Grafico che mostra la simultaneità di una funzione nel tempo.

Il grafico precedente mostra che questa funzione gestisce in media da 5 a 10 richieste simultanee in ogni momento e in un giorno tipico raggiunge un massimo di 20 richieste. Supponiamo che nel tuo account siano presenti molte altre funzioni. Se questa funzione è fondamentale per la tua applicazione e non vuoi che alcuna richiesta venga tralasciata, puoi utilizzare un numero uguale a o maggiore di 20 come impostazione della simultaneità 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 Visualizza le metriche per le funzioni Lambda.

È inoltre necessario conoscere i vincoli di throughput a monte e a valle. Sebbene le funzioni Lambda si dimensioni perfettamente in base al carico, le dipendenze a monte e a valle potrebbero non avere le stesse capacità di velocità di trasmissione effettiva. Se devi limitare l'altezza di scalabilità della tua funzione, configura la concorrenza riservata sulla tua funzione.