

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à.

# Informazioni sulla scalabilità della funzione Lambda
<a name="lambda-concurrency"></a>

La **concorrenza** è il numero di richieste in volo che la tua AWS Lambda funzione gestisce contemporaneamente. Per ogni richiesta simultanea, Lambda fornisce un'istanza separata del tuo ambiente di esecuzione. Man mano che le funzioni ricevono più richieste, Lambda gestisce automaticamente il dimensionamento del numero di ambienti di esecuzione fino al raggiungimento del limite di simultaneità dell'account. Per impostazione predefinita, Lambda fornisce all'account un limite totale di simultaneità pari a 1.000 esecuzioni simultanee per tutte le funzioni in una Regione AWS. Per soddisfare le esigenze specifiche dell'account, è possibile [richiedere un aumento della quota](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-concurrency-limit-increase/) e configurare i controlli di simultaneità a livello di funzione in modo che le funzioni critiche non subiscano limitazioni.

In questo argomento sono descritti i concetti di simultaneità e la scalabilità delle funzioni in Lambda. Alla fine di questo argomento, sarà possibile capire come calcolare la simultaneità, visualizzare le due principali opzioni di controllo della simultaneità (riservata e fornita), stimare le impostazioni di controllo della simultaneità appropriate e visualizzare i parametri per un'ulteriore ottimizzazione.

**Topics**
+ [

## Comprendere e visualizzare la simultaneità
](#understanding-concurrency)
+ [

## Calcolo della simultaneità per una funzione
](#calculating-concurrency)
+ [

## Informazioni sulla simultaneità riservata e simultaneità fornita
](#reserved-and-provisioned)
+ [

## Informazioni sulla simultaneità e le richieste al secondo
](#concurrency-vs-requests-per-second)
+ [

## Quote di simultaneità
](#concurrency-quotas)
+ [

# Configurazione della simultaneità riservata per una funzione
](configuration-concurrency.md)
+ [

# Configurazione della simultaneità fornita per una funzione
](provisioned-concurrency.md)
+ [

# Comportamento del dimensionamento Lambda
](scaling-behavior.md)
+ [

# Monitoraggio della simultaneità
](monitoring-concurrency.md)

## Comprendere e visualizzare la simultaneità
<a name="understanding-concurrency"></a>

Lambda richiama la funzione in un [ambiente di esecuzione](lambda-runtime-environment.md) sicuro e isolato. Per gestire una richiesta, Lambda deve prima inizializzare un ambiente di esecuzione (la [fase Init](lambda-runtime-environment.md#runtimes-lifecycle-ib)) e poi utilizzare tale ambiente per richiamare la funzione (la [fase Invoke](lambda-runtime-environment.md#runtimes-lifecycle-invoke)):

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-1-environment.png)


**Nota**  
Le durate effettive delle fasi Init e Invoke possono variare in base a molti fattori, come il runtime scelto e il codice della funzione Lambda. Il diagramma precedente non intende rappresentare le proporzioni esatte delle durate delle fasi Init e Invoke.

Il rettangolo nel diagramma rappresenta un singolo ambiente di esecuzione. Quando la funzione riceve la sua primissima richiesta (rappresentata dal cerchio giallo con etichetta `1`), Lambda crea un nuovo ambiente di esecuzione ed esegue il codice all'esterno del gestore principale durante la fase Init. Quindi, esegue il codice del gestore principale della funzione durante la fase Invoke. Durante l'intero processo, questo ambiente di esecuzione è occupato e non può elaborare altre richieste.

Quando Lambda termina l'elaborazione della prima richiesta, questo ambiente di esecuzione potrà elaborare richieste aggiuntive per la stessa funzione. Per le richieste successive, Lambda non deve reinizializzare l'ambiente.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-2-two-requests.png)


Nel diagramma precedente, Lambda riutilizza l'ambiente di esecuzione per gestire la seconda richiesta (rappresentata dal cerchio giallo con etichetta `2`).

Finora ci siamo concentrati su una sola istanza dell'ambiente di esecuzione (ossia una simultaneità pari a 1). In pratica, Lambda potrebbe dover fornire più istanze dell'ambiente di esecuzione in parallelo in modo da gestire tutte le richieste in entrata. Quando la funzione riceve una nuova richiesta, può succedere una delle due cose:
+ Se è disponibile un'istanza dell'ambiente di esecuzione pre-inizializzata, Lambda la utilizza per elaborare la richiesta.
+ Altrimenti, Lambda crea una nuova istanza dell'ambiente di esecuzione.

Ad esempio, vediamo cosa accade quando la funzione riceve 10 richieste:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-3-ten-requests.png)


Nel diagramma precedente, ogni piano orizzontale rappresenta una singola istanza dell'ambiente di esecuzione (etichettata da `A` a `F`). Ecco come Lambda gestisce ogni richiesta:


| Richiesta | Comportamento di Lambda | Ragionamento | 
| --- | --- | --- | 
|  1  |  Fornisce il nuovo ambiente **A**  |  Questa è la prima richiesta; nessuna istanza dell'ambiente di esecuzione è disponibile.  | 
|  2  |  Fornisce il nuovo ambiente **B**  |  L'istanza **A** dell'ambiente di esecuzione esistente è occupata.  | 
|  3  |  Fornisce il nuovo ambiente **C**  |  Le istanze **A** e **B** dell'ambiente di esecuzione esistenti sono entrambe occupate.  | 
|  4  |  Fornisce il nuovo ambiente **D**  |  Le istanze **A**, **B** e **C** dell'ambiente di esecuzione esistenti sono tutte occupate.  | 
|  5  |  Fornisce il nuovo ambiente **E**  |  Le istanze **A**, **B**, **C** e **D** dell'ambiente di esecuzione esistenti sono tutte occupate.  | 
|  6  |  Riutilizza l'ambiente **A**  |  L'istanza **A** dell'ambiente di esecuzione ha terminato l'elaborazione della richiesta **1** ed è ora disponibile.  | 
|  7  |  Riutilizza l'ambiente **B**  |  L'istanza **B** dell'ambiente di esecuzione ha terminato l'elaborazione della richiesta **2** ed è ora disponibile.  | 
|  8  |  Riutilizza l'ambiente**C**  |  L'istanza **C** dell'ambiente di esecuzione ha terminato l'elaborazione della richiesta **3** ed è ora disponibile.  | 
|  9  |  Fornisce il nuovo ambiente **F**  |  Le istanze **A**, **B**, **C**, **D** e **E** dell'ambiente di esecuzione esistenti sono tutte occupate.  | 
|  10  |  Riutilizza l'ambiente **D**  |  L'istanza **D** dell'ambiente di esecuzione ha terminato l'elaborazione della richiesta **4** ed è ora disponibile.  | 

Man mano che la funzione riceve più richieste simultanee, Lambda aumenta il numero di istanze dell'ambiente di esecuzione in risposta. L'animazione seguente tiene traccia del numero di richieste simultanee nel tempo:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-4-animation.gif)


Osservando l'animazione precedente in sei momenti distinti nel tempo, otteniamo il seguente diagramma:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-5-animation-summary.png)


Nel diagramma precedente, possiamo tracciare una linea verticale in qualsiasi momento e contare il numero di ambienti che intersecano questa linea. Questo ci dà il numero di richieste simultanee in quel momento. Ad esempio, al momento `t1`, ci sono tre ambienti attivi che gestiscono tre richieste simultanee. Il numero massimo di richieste simultanee in questa simulazione si verifica nel momento `t4`, quando ci sono sei ambienti attivi che gestiscono sei richieste simultanee.

Per riassumere, la simultaneità della funzione è il numero di richieste simultanee che sono gestite nello stesso momento. In risposta a un aumento della simultaneità della funzione, Lambda fornisce più istanze dell'ambiente di esecuzione per soddisfare la domanda di richieste.

## Calcolo della simultaneità per una funzione
<a name="calculating-concurrency"></a>

In generale, la simultaneità di un sistema è la capacità di elaborare più di un'attività contemporaneamente. In Lambda, la simultaneità è il numero di richieste in corso che la funzione può gestire nello stesso momento. Un modo rapido e pratico per misurare la simultaneità di una funzione Lambda consiste nell'utilizzare la seguente formula:

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

**La simultaneità è diversa dalle richieste al secondo.** Ad esempio, supponiamo che la funzione riceva in media 100 richieste al secondo. Se la durata media della richiesta è di 1 secondo, anche la simultaneità è 100:

```
Concurrency = (100 requests/second) * (1 second/request) = 100
```

Tuttavia, se la durata media della richiesta è di 500 ms, la simultaneità è 50:

```
Concurrency = (100 requests/second) * (0.5 second/request) = 50
```

Cosa significa in pratica una simultaneità pari a 50? Se la durata media della richiesta è di 500 ms, si può immaginare che un'istanza della funzione sia in grado di gestire 2 richieste al secondo. Quindi, sono necessarie 50 istanze della funzione per gestire un carico di 100 richieste al secondo. Una simultaneità pari a 50 significa che Lambda deve fornire 50 istanze dell'ambiente di esecuzione per gestire in modo efficiente questo carico di lavoro senza alcuna limitazione. Ecco come esprimerlo in forma di equazione:

```
Concurrency = (100 requests/second) / (2 requests/second) = 50
```

Se la funzione riceve il doppio del numero di richieste (200 richieste al secondo), ma richiede solo la metà del tempo per elaborare ciascuna richiesta (250 ms), la simultaneità è ancora 50:

```
Concurrency = (200 requests/second) * (0.25 second/request) = 50
```

### Verifica se hai capito come funziona la simultaneità
<a name="concurrency-test"></a>

Supponiamo di avere una funzione che richiede, in media, 200 ms per essere eseguita. Durante i picchi di carico, si osservano 5.000 richieste al secondo. Qual è la simultaneità della tua funzione durante i picchi di carico? 

#### Risposta
<a name="concurrency-test-answer"></a>

La durata media della funzione è di 200 ms o 0,2 secondi. Utilizzando la formula della simultaneità, a partire da questi numeri si ottiene una simultaneità pari a 1.000:

```
Concurrency = (5,000 requests/second) * (0.2 seconds/request) = 1,000
```

In alternativa, una durata media della funzione di 200 ms significa che la funzione può elaborare 5 richieste al secondo. Per gestire il carico di lavoro di 5.000 richieste al secondo, sono necessarie 1.000 istanze dell'ambiente di esecuzione. Pertanto, la simultaneità è 1.000:

```
Concurrency = (5,000 requests/second) / (5 requests/second) = 1,000
```

## Informazioni sulla simultaneità riservata e simultaneità fornita
<a name="reserved-and-provisioned"></a>

Per impostazione predefinita, il tuo account ha un limite di simultaneità pari a 1.000 esecuzioni simultanee per tutte le funzioni in una regione. Le funzioni condividono questo pool di simultaneità 1.000 su richiesta. Le tue funzioni subiscono una limitazione (ovvero iniziano a far cadere le richieste) se esaurisci la concorrenza disponibile.

Alcune delle tue funzioni potrebbero essere più critiche di altre. Di conseguenza, potresti voler configurare le impostazioni di simultaneità in modo da garantire che le funzioni critiche ottengano la simultaneità di cui hanno bisogno. Lambda fornisce due tipi di controlli della simultaneità: la simultaneità riservata e la simultaneità fornita.
+ Utilizza la **concorrenza riservata** per impostare il numero massimo e minimo di istanze simultanee e riservare una parte della concorrenza del tuo account a una funzione. Ciò è utile se non si desidera che altre funzioni occupino tutta la simultaneità non riservata disponibile. Quando una funzione ha la simultaneità riservata, nessun'altra funzione può utilizzare tale simultaneità. 
+ Usa la **simultaneità fornita** per pre-inizializzare una serie di istanze di ambiente per una funzione. Ciò è utile per ridurre le latenze di avviamento a freddo.

### Simultaneità riservata
<a name="reserved-concurrency-concept"></a>

Se vuoi garantire che una certa quantità di simultaneità sia disponibile per la tua funzione in qualsiasi momento, usa la simultaneità riservata.

La concorrenza riservata imposta il numero massimo e minimo di istanze simultanee da allocare alla funzione. Quando una funzione ha la simultaneità riservata dedicata, nessun'altra funzione potrà utilizzare tale simultaneità. In altre parole, l'impostazione della simultaneità riservata può influire sul pool di simultaneità disponibile per altre funzioni. Le funzioni che non dispongono di simultaneità riservata condividono il pool rimanente di simultaneità non riservata.

La configurazione della simultaneità riservata viene conteggiata ai fini del limite complessivo di simultaneità dell'account. Non è previsto alcun addebito per la configurazione della simultaneità riservata per una funzione.

Per comprendere meglio la simultaneità riservata, considera il seguente diagramma:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-6-reserved-concurrency.png)


In questo diagramma, il limite di simultaneità dell'account per tutte le funzioni in questa regione è il limite predefinito di 1.000. Supponiamo di avere due funzioni critiche `function-blue` e `function-orange` che si aspettino di ottenere regolarmente volumi di chiamate elevati. Decidi di assegnare 400 unità di simultaneità riservata a `function-blue` e 400 unità di simultaneità riservata a `function-orange`. In questo esempio, tutte le altre funzioni del tuo account dovranno condividere le restanti 200 unità di simultaneità non riservata.

Il diagramma presenta cinque punti di interesse:
+ Su `t1`, sia `function-orange` che `function-blue` iniziano a ricevere richieste. Ogni funzione inizia a utilizzare la parte allocata di unità di simultaneità riservata.
+ Al momento `t2`, `function-orange` e `function-blue` stanno ricevendo costantemente più richieste. Allo stesso tempo, vengono implementate altre funzioni Lambda, che iniziano a ricevere richieste. La simultaneità riservata non viene assegnata a queste altre funzioni. Iniziano a utilizzare le restanti 200 unità di simultaneità non riservata.
+ Su `t3`, `function-orange` raggiunge la simultaneità massima di 400. Sebbene sia presente una simultaneità inutilizzata altrove nel tuo account, `function-orange` non può accedervi. La linea rossa indica che per `function-orange` si sta verificando una limitazione e Lambda potrebbe eliminare le richieste.
+ Su `t4`, `function-orange` inizia a ricevere meno richieste e non è più limitato. Tuttavia, le altre funzioni registrano un picco di traffico e iniziano a rallentare. Sebbene sia presente una simultaneità inutilizzata altrove nel tuo account, queste funzioni non possono accedervi. La linea rossa indica che le altre funzioni sono soggette a limitazioni.
+ Su `t5`, le altre funzioni iniziano a ricevere meno richieste e non sono più limitate.

Da questo esempio, nota che riservare la simultaneità ha i seguenti effetti:
+ **La funzione può essere dimensionata indipendentemente dalle altre funzioni nel tuo account.** Tutte le funzioni dell'account nella stessa regione che non dispongono di simultaneità riservata condividono il pool di simultaneità non riservata. Senza simultaneità riservata, altre funzioni possono utilizzare potenzialmente tutta la simultaneità disponibile. Ciò impedisce alle funzioni critiche di aumentare quando necessario.
+ **La tua funzione non può essere aumentata orizzontalmente senza controllo.** La concorrenza riservata limita la concorrenza massima e minima della funzione. Ciò significa che la funzione non può utilizzare la simultaneità riservata ad altre funzioni o la simultaneità dal pool non riservato. Inoltre, la concorrenza riservata funge sia da limite inferiore che da limite superiore: riserva la capacità specificata esclusivamente per la funzione, impedendone al contempo la scalabilità oltre tale limite. È possibile riservare la simultaneità per evitare che la funzione utilizzi tutta la simultaneità disponibile nell'account oppure sovraccarichi le risorse in downstream.
+ **Potresti non essere in grado di utilizzare tutta la simultaneità disponibile del tuo account.** La simultaneità di prenotazione viene conteggiata ai fini del limite di simultaneità dell'account, ma ciò significa anche che altre funzioni non possono utilizzare quella parte di simultaneità riservata. Se la tua funzione non utilizza tutta la simultaneità riservata, stai effettivamente sprecando quella simultaneità. Questo non è un problema a meno che altre funzioni del tuo account non possano trarre vantaggio dallo spreco di simultaneità.

Per gestire le impostazioni di simultaneità riservata per le tue funzioni, consulta la pagina [Configurazione della simultaneità riservata per una funzione](configuration-concurrency.md).

### Simultaneità con provisioning
<a name="provisioned-concurrency-concept"></a>

La simultaneità riservata viene utilizzata per definire il numero massimo di ambienti di esecuzione riservati a una funzione Lambda. Tuttavia, nessuno di questi ambienti è pre-inizializzato. Di conseguenza, le chiamate delle funzioni potrebbero richiedere più tempo perché Lambda deve inizializzare il nuovo ambiente prima di poterlo utilizzare per richiamare la funzione. Quando Lambda deve inizializzare un nuovo ambiente per eseguire una chiamata, si parla di [avvio a freddo](lambda-runtime-environment.md#cold-start-latency). Per mitigare gli avviamenti a freddo, è possibile utilizzare la simultaneità fornita.

La simultaneità assegnata è il numero di ambienti di esecuzione pre-inizializzati che si desidera allocare alla funzione. Se si imposta la simultaneità fornita su una funzione, Lambda inizia quel numero di ambienti di esecuzione in modo che siano preparati a rispondere immediatamente alle richieste della funzione.

**Nota**  
La configurazione della simultaneità fornita comporta addebiti sul tuo account. Se lavori con i runtime Java 11 o Java 17, puoi anche usare SnapStart Lambda per mitigare i problemi di avvio a freddo senza costi aggiuntivi. SnapStart utilizza istantanee memorizzate nella cache dell'ambiente di esecuzione per migliorare significativamente le prestazioni di avvio. Non è possibile utilizzare entrambe le funzioni SnapStart e assegnare la concorrenza nella stessa versione della funzione. Per ulteriori informazioni su SnapStart funzionalità, limitazioni e regioni supportate, consulta. [Migliorare le prestazioni di avvio con Lambda SnapStart](snapstart.md)

Quando si utilizza la simultaneità fornita, Lambda riavvia comunque gli ambienti di esecuzione in background. Ad esempio, ciò può verificarsi [dopo un errore di chiamata.](lambda-runtime-environment.md#runtimes-lifecycle-invoke-with-errors) Tuttavia, in qualsiasi momento, Lambda garantisce sempre che il numero di ambienti pre-inizializzati sia uguale al valore dell'impostazione di simultaneità fornita dalla funzione. È importante sottolineare che, anche se utilizzi la concorrenza fornita, puoi comunque riscontrare un ritardo di avvio a freddo se Lambda deve reimpostare l'ambiente di esecuzione.

Al contrario, quando si utilizza la concorrenza riservata, Lambda può terminare completamente un ambiente dopo un periodo di inattività. Il diagramma seguente illustra ciò confrontando il ciclo di vita di un singolo ambiente di esecuzione quando si configura la funzione utilizzando la simultaneità riservata rispetto alla simultaneità fornita.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-7-reserved-vs-provisioned.png)


Il diagramma presenta 4 punti di interesse:


| Orario | Simultaneità riservata | Simultaneità con provisioning | 
| --- | --- | --- | 
|  t1  |  Non succede niente.  |  Lambda pre-inizializza un'istanza dell'ambiente di esecuzione.  | 
|  t2  |  Arriva la richiesta 1. Lambda deve inizializzare una nuova istanza dell'ambiente di esecuzione.  |  Arriva la richiesta 1. Lambda utilizza l'istanza pre-inizializzata dell'ambiente.  | 
|  t3  |  Dopo una certa inattività, Lambda termina l'istanza dell'ambiente attivo.  |  Non succede niente.  | 
|  t4  |  Arriva la richiesta 2. Lambda deve inizializzare una nuova istanza dell'ambiente di esecuzione.  |  Arriva la richiesta 2. Lambda utilizza l'istanza pre-inizializzata dell'ambiente.  | 

Per comprendere meglio la simultaneità fornita, considera il seguente diagramma:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-8-provisioned-concurrency.png)


In questo diagramma, hai un limite di simultaneità dell'account pari a 1.000. Decidi di assegnare 400 unità di simultaneità fornita a `function-orange`. Tutte le funzioni del tuo account, *inclusa* `function-orange`, possono utilizzare le restanti 600 unità di simultaneità non riservata.

Il diagramma presenta cinque punti di interesse:
+ Su `t1`, `function-orange` inizia a ricevere richieste. Poiché Lambda ha pre-inizializzato 400 istanze dell'ambiente di esecuzione, `function-orange` è pronta per la chiamata immediata.
+ Su `t2`, `function-orange` raggiunge le 400 richieste simultanee. Di conseguenza, `function-orange` esaurisce la simultaneità fornita. Tuttavia, poiché è ancora disponibile la simultaneità non riservata, Lambda può utilizzarla per gestire richieste aggiuntive a `function-orange` (senza limitazioni). Lambda deve creare nuove istanze per soddisfare queste richieste e la funzione potrebbe presentare latenze di avvio a freddo.
+ Su `t3`, `function-orange` torna a 400 richieste simultanee dopo un breve picco di traffico. Lambda è nuovamente in grado di gestire tutte le richieste senza latenze di avvio a freddo.
+ Su `t4`, le funzioni del tuo account subiscono un'impennata di traffico. Questa impennata può provenire da `function-orange` o da qualsiasi altra funzione del tuo account. Per gestire queste richieste, Lambda utilizza la simultaneità non riservata.
+ Su `t5`, le funzioni del tuo account raggiungono il limite massimo di simultaneità pari a 1.000 e subiscono una limitazione.

L'esempio precedente considerava solo la simultaneità assegnata. In pratica, su una funzione è possibile impostare sia la simultaneità fornita che la simultaneità riservata. Ciò sarebbe possibile se si avesse una funzione che gestisce un carico costante di chiamate nei giorni feriali, ma registra regolarmente picchi di traffico durante i fine settimana. In questo caso, è possibile utilizzare la simultaneità fornita per impostare una quantità di base di ambienti per gestire le richieste durante i giorni feriali e utilizzare la simultaneità riservata per gestire i picchi del fine settimana. Considera il seguente diagramma:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-9-reserved-and-provisioned.png)


In questo diagramma, supponiamo di configurare 200 unità di simultaneità fornita e 400 unità di simultaneità riservata per `function-orange`. Poiché è stata configurata la simultaneità riservata, `function-orange` non può utilizzare nessuna delle 600 unità di simultaneità non riservata.

Il diagramma presenta cinque punti di interesse:
+ Su `t1`, `function-orange` inizia a ricevere richieste. Poiché Lambda ha pre-inizializzato 200 istanze dell'ambiente di esecuzione, `function-orange` è pronta per la chiamata immediata.
+ Su `t2`, `function-orange` utilizza tutta la simultaneità fornita. `function-orange` può continuare a gestire le richieste utilizzando la simultaneità riservata, ma queste richieste potrebbero presentare latenze di avvio a freddo.
+ Su `t3`, `function-orange` raggiunge le 400 richieste simultanee. Di conseguenza, `function-orange` utilizza tutta la sua simultaneità riservata. Poiché `function-orange` non può utilizzare la simultaneità non riservata, le richieste iniziano a rallentare.
+ Su `t4`, `function-orange` inizia a ricevere meno richieste e non è più limitato.
+ Al momento `t5`, `function-orange` scende a 200 richieste simultanee, quindi tutte le richieste possono nuovamente utilizzare la simultaneità assegnata (ossia nessuna latenza di avvio a freddo).

Sia la simultaneità riservata che la simultaneità fornita vengono conteggiate ai fini del limite di simultaneità dell'account e delle [quote regionali](gettingstarted-limits.md). In altre parole, l'impostazione della simultaneità riservata e fornita può influire sul pool di simultaneità disponibile per altre funzioni. La configurazione della concorrenza fornita comporta dei costi a carico dell'utente. Account AWS

**Nota**  
Se la quantità di simultaneità assegnata nelle versioni e negli alias di una funzione si somma alla simultaneità riservata della funzione, tutte le chiamate vengono eseguite sulla simultaneità assegnata. Questa configurazione ha anche l'effetto di limitare il throttling della funzione (`$LATEST`), che ne impedisce l'esecuzione. Non è possibile allocare più simultaneità fornita rispetto alla simultaneità riservata per una funzione.

Per gestire le impostazioni di simultaneità riservata delle tue funzioni, consulta la pagina [Configurazione della simultaneità fornita per una funzione](provisioned-concurrency.md). Per automatizzare il dimensionamento della simultaneità assegnata in base a una pianificazione o all'utilizzo dell'applicazione, consulta la pagina [Utilizzo di Application Auto Scaling per automatizzare la gestione della simultaneità fornita](provisioned-concurrency.md#managing-provisioned-concurency).

### Come Lambda alloca la simultaneità fornita
<a name="allocating-provisioned-concurrency"></a>

La simultaneità fornita non è disponibile online immediatamente dopo la configurazione. Lambda avvia l'allocazione della simultaneità fornita dopo uno o due minuti di preparazione. Per ogni funzione, Lambda può fornire fino a 6.000 ambienti di esecuzione al minuto, indipendentemente da. Regione AWSÈ esattamente la stessa della [velocità di scalabilità simultanea](scaling-behavior.md#scaling-rate) per le funzioni.

Quando invii una richiesta di allocazione della simultaneità fornita, non puoi accedere a nessuno di questi ambienti finché Lambda non completa l'allocazione. Ad esempio, se richiedi 5.000 simultaneità fornita, nessuna delle tue richieste potrà utilizzare la simultaneità fornita fino a che Lambda completa l'allocazione dei 5.000 ambienti di esecuzione.

### Simultaneità riservata e simultaneità fornita di Lambda.
<a name="comparing-reserved-provisioned"></a>

Di seguito è riportata una tabella che riassume e mette a confronto la simultaneità riservata e la simultaneità assegnata.


| Topic | Simultaneità riservata | Simultaneità con provisioning | 
| --- | --- | --- | 
|  Definizione  |  Numero massimo di istanze dell'ambiente di esecuzione per la funzione.  |  Imposta il numero massimo di istanze dell'ambiente di esecuzione pre-fornito per la funzione.  | 
|  Comportamento del provisioning  |  Lambda fornisce nuove istanze su richiesta.  |  Lambda fornisce le istanze in anticipo, ossia prima che la funzione inizi a ricevere richieste.  | 
|  Comportamento dell'avvio a freddo  |  È possibile una latenza di avvio a freddo, poiché Lambda deve creare nuove istanze su richiesta.  |  La latenza di avvio a freddo non è possibile, poiché Lambda non deve creare istanze on demand.  | 
|  Comportamento della limitazione  |  Funzione limitata quando viene raggiunto il limite di simultaneità riservata.  |  Se la simultaneità riservata non è impostata: quando viene raggiunto il limite di simultaneità fornita la funzione utilizza la simultaneità non riservata. Se è impostata la simultaneità riservata: quando viene raggiunto il limite di simultaneità riservata la funzione viene limitata.  | 
|  Comportamento predefinito se non impostato  |  La funzione utilizza la simultaneità non riservata disponibile nel tuo account.  |  Lambda non fornisce alcuna istanza in anticipo. Invece, se la simultaneità riservata non è impostata: la funzione utilizza la simultaneità non riservata disponibile nel tuo account. Se è impostata la simultaneità riservata: la funzione utilizza la simultaneità riservata.  | 
|  Prezzi  |  Nessun costo aggiuntivo.  |  Incorre in costi aggiuntivi.  | 

## Informazioni sulla simultaneità e le richieste al secondo
<a name="concurrency-vs-requests-per-second"></a>

Come indicato nella sezione precedente, la simultaneità è diversa dalle richieste al secondo. Questa distinzione è particolarmente rilevante quando si lavora con funzioni con una durata media della richiesta inferiore a 100 ms.

In tutte le funzioni del tuo account, Lambda applica un limite di richieste al secondo pari a 10 volte la simultaneità dell'account. Ad esempio, poiché il limite di simultaneità predefinito dell'account è 1.000, le funzioni dell'account possono gestire un massimo di 10.000 richieste al secondo.

Ad esempio, consideriamo una funzione con una durata media della richiesta di 50 ms. A 20.000 richieste al secondo, ecco la simultaneità di questa funzione:

```
Concurrency = (20,000 requests/second) * (0.05 second/request) = 1,000
```

In base a questo risultato, potresti aspettarti che il limite di simultaneità dell'account pari a 1.000 sia sufficiente per gestire questo carico. Tuttavia, a causa del limite di 10.000 richieste al secondo, la funzione può gestire solo 10.000 richieste al secondo sulle 20.000 richieste totali. Questa funzione subisce una limitazione.

Pertanto, quando si configurano le impostazioni di simultaneità per le funzioni, è necessario considerare sia la simultaneità sia le richieste al secondo. In questo caso, devi richiedere un aumento del limite di simultaneità dell'account a 2.000, poiché ciò aumenterebbe il limite totale di richieste al secondo a 20.000.

**Nota**  
In base a questo limite di richieste al secondo, non è corretto affermare che ogni ambiente di esecuzione Lambda può gestire solo un massimo di 10 richieste al secondo. Invece di osservare il carico su ogni singolo ambiente di esecuzione, Lambda considera solo la simultaneità complessiva e le richieste complessive al secondo nel calcolo delle quote.

### Metti alla prova la tua comprensione della simultaneità (funzioni inferiori a 100 ms)
<a name="concurrency-test-2"></a>

Supponiamo di avere una funzione che richiede, in media, 20 ms per essere eseguita. Durante i picchi di carico, si registrano 30.000 richieste al secondo. Qual è la simultaneità della tua funzione durante i picchi di carico?

#### Risposta
<a name="concurrency-test-2-answer"></a>

La durata media della funzione è di 20 ms o 0,02 secondi. Utilizzando la formula della simultaneità, a partire da questi numeri si ottiene una simultaneità pari a 600:

```
Concurrency = (30,000 requests/second) * (0.02 seconds/request) = 600
```

Per impostazione predefinita, il limite di simultaneità dell'account pari a 1.000 sembra sufficiente per gestire questo carico. Tuttavia, il limite di 10.000 richieste al secondo non è sufficiente per gestire le 30.000 richieste in entrata al secondo. Per soddisfare appieno le 30.000 richieste, devi richiedere un aumento del limite di simultaneità dell'account a 3.000 o più.

Il limite di richieste al secondo si applica a tutte le quote in Lambda che prevedono la simultaneità. In altre parole, si applica alle funzioni on demand sincrone, alle funzioni che utilizzano la simultaneità fornita e al [comportamento di scalabilità della simultaneità](scaling-behavior.md). Ad esempio, ecco alcuni scenari in cui è necessario considerare attentamente sia i limiti di simultaneità che quelli di richieste al secondo:
+ Una funzione che utilizza la simultaneità on demand può registrare un aumento improvviso di 500 richieste simultanee ogni 10 secondi o di 5.000 richieste al secondo ogni 10 secondi, a seconda dell'evento che si verifica per primo.
+ Si supponga di disporre di una funzione con un'allocazione di simultaneità fornita pari a 10. Questa funzione si ripercuote sulla simultaneità on demand dopo 10 operazioni simultanee o 100 richieste al secondo, a seconda dell'evento che si verifica per primo.

## Quote di simultaneità
<a name="concurrency-quotas"></a>

Lambda imposta le quote per la quantità totale di simultaneità che è possibile utilizzare in tutte le funzioni di una regione. Queste quote esistono su due livelli:
+ **A livello di account**: per impostazione predefinita, le funzioni possono avere fino a 1.000 unità di simultaneità. Per aumentare questo limite, consulta [Richiesta di aumento delle quote](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) nella *Guida per l'utente di Service Quotas*.
+ **A livello di funzione**, per impostazione predefinita, è possibile riservare fino a 900 unità di simultaneità in tutte le regioni. Indipendentemente dal limite totale di simultaneità dell'account, Lambda riserva sempre 100 unità di simultaneità per le funzioni che non la riservano esplicitamente. Ad esempio, se hai aumentato il limite di simultaneità del tuo account a 2.000, puoi riservare fino a 1.900 unità di simultaneità a livello di funzione.
+ Sia a livello di account che a livello di funzione, Lambda impone anche un limite di richieste al secondo pari a 10 volte la quota di simultaneità corrispondente. Ad esempio, ciò si applica alla simultaneità a livello di account, alle funzioni che utilizzano la simultaneità on demand, alle funzioni che utilizzano la simultaneità fornita e al [comportamento di scalabilità della simultaneità](scaling-behavior.md). Per ulteriori informazioni, consulta [Informazioni sulla simultaneità e le richieste al secondo](#concurrency-vs-requests-per-second).

Per controllare la quota di concorrenza a livello di account corrente, usa il comando AWS Command Line Interface (AWS CLI) per eseguire il seguente comando:

```
aws lambda get-account-settings
```

L'output restituito dovrebbe essere simile al seguente:

```
{
    "AccountLimit": {
        "TotalCodeSize": 80530636800,
        "CodeSizeUnzipped": 262144000,
        "CodeSizeZipped": 52428800,
        "ConcurrentExecutions": 1000,
        "UnreservedConcurrentExecutions": 900
    },
    "AccountUsage": {
        "TotalCodeSize": 410759889,
        "FunctionCount": 8
    }
}
```

`ConcurrentExecutions` è la quota di simultaneità totale a livello di account. `UnreservedConcurrentExecutions` è la quantità di simultaneità riservata che puoi ancora destinare alle tue funzioni.

Man mano che la funzione riceve altre richieste, Lambda aumenta automaticamente il numero di ambienti di esecuzione per gestire le richieste fino al raggiungimento della quota di simultaneità dell'account. Tuttavia, per proteggersi dall'eccessivo aumento in risposta a improvvisi picchi di traffico, Lambda limita la velocità di dimensionamento delle funzioni. Questa **velocità di scalabilità della simultaneità** è la velocità massima alla quale le funzioni del tuo account possono scalare in risposta all'aumento delle richieste. Si tratta della velocità con cui Lambda può creare nuovi ambienti di esecuzione. Il tasso di scalabilità della simultaneità è diverso dal limite di simultaneità a livello di account, che è la quantità totale di simultaneità disponibile per le funzioni.

**In ogni Regione AWS funzione e per ogni funzione, la velocità di scalabilità simultanea è di 1.000 istanze dell'ambiente di esecuzione ogni 10 secondi (o 10.000 richieste al secondo ogni 10 secondi).** In altre parole, ogni 10 secondi, Lambda può allocare al massimo 1.000 istanze aggiuntive dell'ambiente di esecuzione o gestire 10.000 richieste aggiuntive al secondo, per ciascuna delle tue funzioni.

Di solito, non è necessario preoccuparsi di questa limitazione. La velocità di dimensionamento di Lambda è sufficiente per la maggior parte dei casi d'uso.

È importante sottolineare che la velocità di scalabilità della simultaneità è un limite a livello di funzione. Ciò significa che ogni funzione del tuo account può dimensionarsi indipendentemente dalle altre funzioni.

Per ulteriori informazioni sul comportamento di dimensionamento, consulta la pagina [Comportamento del dimensionamento Lambda](scaling-behavior.md).

# Configurazione della simultaneità riservata per una funzione
<a name="configuration-concurrency"></a>

In Lambda, la [simultaneità](lambda-concurrency.md) è 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 e minimo di istanze simultanee allocate alla funzione. Quando una funzione ha la simultaneità riservata, nessun'altra funzione può utilizzare tale simultaneità. 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.
+ 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 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 simultaneità fornita comporta ulteriori addebiti sul tuo 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](https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html#reserved-and-provisioned). Per informazioni sulla configurazione della simultaneità fornita, consulta la sezione [Configurazione della simultaneità fornita per una funzione](provisioned-concurrency.md).

**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 Supporto.

**Topics**
+ [

## Configurazione della simultaneità riservata
](#configuring-concurrency-reserved)
+ [

## Stima accurata della simultaneità riservata richiesta per una funzione
](#estimating-reserved-concurrency)

## Configurazione della simultaneità riservata
<a name="configuring-concurrency-reserved"></a>

È possibile configurare le simultaneità fornita per una funzione utilizzando la console Lambda o l'API Lambda.

**Riserva della simultaneità per una funzione (console)**

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

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

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

1. In **Concurrency (Concorrenza)**, scegliere **Edit (Modifica)**. 

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

1. Selezionare **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.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-reserve-over-limit.png)


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 simultaneità riservata con l'API Lambda, utilizza le operazioni dell'API seguenti.
+ [PutFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionConcurrency.html)
+ [GetFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConcurrency.html)
+ [DeleteFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteFunctionConcurrency.html)

Per configurare la simultaneità riservata con l'AWS Command Line Interface (CLI), utilizza 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 simultaneità riservata richiesta per una funzione
<a name="estimating-reserved-concurrency"></a>

Se la tua funzione attualmente gestire del traffico, puoi facilmente visualizzarne i parametri di simultaneità utilizzando i [parametri di CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). In particolare, il parametro `ConcurrentExecutions` mostra il numero di chiamate simultanee per ciascuna funzione del tuo account.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-concurrent-executions-metrics.png)


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à](https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html#calculating-concurrency) 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 dei parametri di CloudWatch Logs con Lambda](monitoring-metrics.md).

Devi anche essere esperto dei 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 throughput. Se devi limitare il valore massimo di scalabilità della tua funzione, puoi configurare la simultaneità riservata sulla funzione.

# Configurazione della simultaneità fornita per una funzione
<a name="provisioned-concurrency"></a>

In Lambda, la [simultaneità](lambda-concurrency.md) è 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 simultaneità riservata è utile per garantire che le funzioni più critiche abbiano sempre una simultaneità sufficiente per gestire le richieste in arrivo. Inoltre, la concorrenza riservata può essere utilizzata per limitare la concorrenza ed evitare un sovraccarico di risorse a valle, come le connessioni al database. La concorrenza riservata funge sia da limite inferiore che da limite superiore: riserva la capacità specificata esclusivamente per la funzione, impedendone al contempo la scalabilità oltre tale limite. 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 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 simultaneità fornita comporta ulteriori addebiti sull'Account AWS.

In questo argomento viene descritta in dettaglio la modalità gestire e configurare la simultaneità fornita. Per una panoramica concettuale di questi due tipi di controlli della simultaneità, consulta la sezione [Simultaneità riservata e simultaneità fornita](https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html#reserved-and-provisioned). Per ulteriori informazioni sulla configurazione della simultaneità riservata, consulta la sezione [Configurazione della simultaneità riservata per una funzione](configuration-concurrency.md).

**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 Supporto.

**Topics**
+ [

## Configurazione della simultaneità fornita
](#configuring-provisioned-concurrency)
+ [

## Stima accurata della simultaneità fornita richiesta per una funzione
](#estimating-provisioned-concurrency)
+ [

## Ottimizzazione del codice della funzione quando si utilizza la simultaneità fornita
](#optimizing-latency)
+ [

## Utilizzo di variabili di ambiente per visualizzare e controllare il comportamento della simultaneità fornita
](#pc-environment-variables)
+ [

## Informazioni sul comportamento di registrazione e fatturazione con la simultaneità fornita
](#pc-logging-behavior)
+ [

## Utilizzo di Application Auto Scaling per automatizzare la gestione della simultaneità fornita
](#managing-provisioned-concurency)

## Configurazione della simultaneità fornita
<a name="configuring-provisioned-concurrency"></a>

È possibile configurare le impostazioni di simultaneità fornita per una funzione utilizzando la console Lambda o l'API Lambda.

**Allocazione della simultaneità fornita per una funzione (console)**

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegli la funzione per la quale desideri allocare la simultaneità fornita.

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

1. In **Provisioned concurrency configurations (Configurazioni di simultaneità fornita)**, scegliere **Add configuration (Aggiungi configurazione)**.

1. Scegli il tipo di qualificatore e l'alias o la versione.
**Nota**  
Non è possibile utilizzare la simultaneità fornita con la versione \$1LATEST di alcuna funzione.  
Se la funzione dispone di un'origine eventi, assicurati che tale origine punti all'alias corretto o alla versione corretta della funzione. In caso contrario, la funzione non utilizzerà gli ambienti di simultaneità fornita.

1. Inserisci un numero in **Simultaneità fornita**.

1. Selezionare **Salva**.

Puoi configurare fino al valore massimo 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 il tuo account ha un limite di simultaneità di 1.000 e non hai assegnato simultaneità riservata o fornita ad alcuna delle tue altre funzioni, puoi configurare un massimo di 900 unità di simultaneità fornita per una singola funzione.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/provisioned-concurrency-over-limit.png)


La configurazione della simultaneità fornita per una funzione influisce sul pool di simultaneità disponibile per altre funzioni. Ad esempio, se configuri 100 unità di simultaneità fornita per `function-a`, le altre funzioni nell'account devono condividere le 900 unità di simultaneità rimanenti. Ciò vale anche se `function-a` non utilizza tutte le 100 unità.

Per la stessa funzione è possibile allocare sia la simultaneità riservata che la simultaneità fornita. In questi casi, la concorrenza fornita non può superare la concorrenza riservata.

Questa limitazione si estende alle versioni della funzione. La simultaneità fornita massima che si può assegnare a una versione specifica della funzione corrisponde alla simultaneità riservata della funzione meno la simultaneità fornita su altre versioni della funzione.

Per configurare la simultaneità fornita con l'API Lambda, utilizza le operazioni dell'API seguenti.
+ [PutProvisionedConcurrencyConfig](https://docs.aws.amazon.com/lambda/latest/api/API_PutProvisionedConcurrencyConfig.html)
+ [GetProvisionedConcurrencyConfig](https://docs.aws.amazon.com/lambda/latest/api/API_GetProvisionedConcurrencyConfig.html)
+ [ListProvisionedConcurrencyConfigs](https://docs.aws.amazon.com/lambda/latest/api/API_ListProvisionedConcurrencyConfigs.html)
+ [DeleteProvisionedConcurrencyConfig](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteProvisionedConcurrencyConfig.html)

Ad esempio, per configurare la simultaneità fornita con l'AWS Command Line Interface (CLI), utilizza il comando `put-provisioned-concurrency-config`. Il comando seguente alloca 100 unità di simultaneità fornita per l'alias `BLUE` di una funzione denominata `my-function`:

```
aws lambda put-provisioned-concurrency-config --function-name my-function \
  --qualifier BLUE \
  --provisioned-concurrent-executions 100
```

L'output restituito dovrebbe essere simile al seguente:

```
{
  "Requested ProvisionedConcurrentExecutions": 100,
  "Allocated ProvisionedConcurrentExecutions": 0,
  "Status": "IN_PROGRESS",
  "LastModified": "2023-01-21T11:30:00+0000"
}
```

## Stima accurata della simultaneità fornita richiesta per una funzione
<a name="estimating-provisioned-concurrency"></a>

Puoi visualizzare i parametri di concorrenza di qualsiasi funzione attiva utilizzando i [parametri di CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). Nello specifico, il parametro `ConcurrentExecutions` mostra il numero di invocazioni simultanee per le funzioni nell'account.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-concurrent-executions-metrics.png)


Il grafico precedente mostra che questa funzione gestisce in media da 5 a 10 richieste simultanee in qualsiasi momento dato, e ha un picco di 20 richieste. Supponiamo che nel tuo account siano presenti molte altre funzioni. ** Se questa funzione è fondamentale per la tua applicazione e necessiti di una risposta a bassa latenza per ogni invocazione**, configura almeno 20 unità di simultaneità fornita.

Ricorda che puoi anche [calcolare la simultaneità](https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html#calculating-concurrency) utilizzando la seguente formula:

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

Per stimare la quantità di simultaneità necessaria, moltiplica le richieste medie al secondo per la durata media delle richieste in secondi. Puoi stimare le richieste medie al secondo utilizzando il parametro `Invocation` e la durata media delle richieste in secondi utilizzando il parametro `Duration`.

Quando si configura la simultaneità fornita, Lambda suggerisce di aggiungere un buffer del 10% oltre alla quantità di simultaneità che generalmente occorre alla funzione. Ad esempio, se la funzione di solito raggiunge il picco di 200 richieste simultanee, imposta la simultaneità fornita su 220 (200 richieste simultanee \$1 10% = 220 unità di simultaneità fornita).

## Ottimizzazione del codice della funzione quando si utilizza la simultaneità fornita
<a name="optimizing-latency"></a>

Se utilizzi la simultaneità fornita, prendi in considerazione la possibilità di ristrutturare il codice della funzione per ottimizzarlo per una bassa latenza. Per le funzioni eseguite con simultaneità fornita, Lambda esegue qualsiasi codice di inizializzazione, come il caricamento di librerie e la creazione di istanze di client, in fase di allocazione. Pertanto, è consigliabile trasferire quanti più processi di inizializzazione di istanze all'esterno del gestore della funzione principale per evitare di influire sulla latenza durante le invocazioni effettive della funzione. Al contrario, l'inizializzazione di librerie o la creazione di istanze di client all'interno del codice principale dell'handler implica che la funzione deve ripetere l'esecuzione ogni volta che viene richiamata, a prescindere dal fatto che tu stia utilizzando la simultaneità fornita o meno.

Per le invocazioni on demand, Lambda potrebbe dover eseguire nuovamente il codice di inizializzazione ogni volta che la funzione subisce un avvio a freddo. Per tali funzioni, puoi scegliere di rinviare l'inizializzazione di una funzionalità specifica fino a quando la funzione non ne ha necessità. Ad esempio, considera il seguente flusso di controllo per un gestore Lambda:

```
def handler(event, context):
    ...
    if ( some_condition ):
        // Initialize CLIENT_A to perform a task
    else:
        // Do nothing
```

Nell'esempio precedente, invece di inizializzare `CLIENT_A` all'esterno del gestore principale, lo sviluppatore lo ha inizializzato all'interno dell'istruzione `if`. In tal modo, Lambda esegue il codice solo se la condizione `some_condition` è soddisfatta. Se esegui l'inizializzazione di `CLIENT_A` all'esterno del gestore principale, Lambda esegue quel codice a ogni avvio a freddo. Ciò può aumentare la latenza complessiva.

Puoi misurare le partenze a freddo man mano che Lambda aumenta aggiungendo il monitoraggio X-Ray alla tua funzione. Una funzione che utilizza la simultaneità fornita non presenta un comportamento di avvio a freddo poiché l'ambiente di esecuzione viene preparato prima dell'invocazione. Tuttavia, la simultaneità fornita deve essere applicata a una [versione o alias specifici](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) di una funzione, non alla versione \$1LATEST. Nel caso in cui continui a riscontrare un comportamento di avvio a freddo, assicurati di richiamare la versione dell'alias con la simultaneità fornita configurata.

## Utilizzo di variabili di ambiente per visualizzare e controllare il comportamento della simultaneità fornita
<a name="pc-environment-variables"></a>

È possibile che la funzione utilizzi tutta la simultaneità fornita. Per gestire il traffico in eccesso, Lambda utilizza istanze on demand. Per determinare il tipo di inizializzazione che Lambda ha utilizzato per un ambiente specifico, controlla il valore della variabile di ambiente `AWS_LAMBDA_INITIALIZATION_TYPE`. Questa variabile ammette due valori possibili: `provisioned-concurrency` o `on-demand`. Il valore di `AWS_LAMBDA_INITIALIZATION_TYPE` è immutabile e rimane costante per tutta la durata dell'ambiente. Per verificare il valore di una variabile di ambiente nel codice della funzione, consulta [Recupero delle variabili di ambiente Lambda](configuration-envvars.md#retrieve-environment-variables).

Se utilizzi runtime .NET 6 o .NET 7, puoi configurare la variabile di ambiente `AWS_LAMBDA_DOTNET_PREJIT` per migliorare la latenza delle funzioni, anche laddove non utilizzino la simultaneità fornita. Il runtime .NET impiega la compilazione e l'inizializzazione lenta per ciascuna libreria a cui il codice effettua la chiamata per la prima volta. Di conseguenza, la prima invocazione di una funzione Lambda può richiedere più tempo delle successive. Per ovviare a questo problema, puoi scegliere tra tre valori per `AWS_LAMBDA_DOTNET_PREJIT`:
+ `ProvisionedConcurrency`: Lambda esegue la compilazione JIT anticipata per tutti gli ambienti utilizzando la simultaneità fornita. Si tratta del valore di default.
+ `Always`: Lambda esegue la compilazione JIT anticipata per ogni ambiente, anche se la funzione non utilizza la simultaneità fornita.
+ `Never`: Lambda disattiva la compilazione JIT anticipata per tutti gli ambienti.

## Informazioni sul comportamento di registrazione e fatturazione con la simultaneità fornita
<a name="pc-logging-behavior"></a>

Per gli ambienti con simultaneità fornita, il codice di inizializzazione della funzione viene eseguito durante l'allocazione e periodicamente mentre Lambda ricicla le istanze attive dell'ambiente. Tuttavia, Lambda addebita i costi di inizializzazione anche se l'istanza non elabora mai richieste. La simultaneità fornita viene eseguita continuamente e prevede una fatturazione separata rispetto ai costi di inizializzazione e invocazione. Per maggiori dettagli, consulta [Prezzi di AWS Lambda](https://aws.amazon.com/lambda/pricing/).

Inoltre, quando configuri una funzione Lambda con la simultaneità fornita, Lambda preinizializza l'ambiente di esecuzione in modo che sia disponibile prima delle richieste di invocazione della funzione. Lambda registra il [campo Init Duration](lambda-runtime-environment.md#runtimes-lifecycle-ib) della funzione in un evento di registro [Platform-InitReport in formato di registrazione JSON ogni volta che l'ambiente viene inizializzato](telemetry-schema-reference.md#platform-initReport). [Per visualizzare questo evento di registro, configura il livello di registro JSON su almeno.](monitoring-cloudwatchlogs-logformat.md) `INFO` Puoi anche utilizzare l'[API di telemetria](telemetry-api-reference.md) per utilizzare gli eventi della piattaforma in cui viene riportato il campo Init Duration.

## Utilizzo di Application Auto Scaling per automatizzare la gestione della simultaneità fornita
<a name="managing-provisioned-concurency"></a>

Puoi utilizzare Application Auto Scaling per gestire la simultaneità fornita in base a una pianificazione o all'utilizzo. Se la funzione riceve modelli di traffico prevedibili, utilizza il dimensionamento pianificato. Se desideri che la funzione mantenga una percentuale di utilizzo specifica, utilizza una policy di dimensionamento con monitoraggio degli obiettivi.

**Nota**  
Se utilizzi Application Auto Scaling per gestire la simultaneità fornita dalla funzione, assicurati di [configurare prima un valore di simultaneità iniziale](#configuring-provisioned-concurrency). Se la funzione non dispone di un valore di simultaneità fornita iniziale, Application Auto Scaling potrebbe non gestire correttamente la scalabilità delle funzioni.

### Dimensionamento programmato
<a name="managing-provisioned-concurrency-scheduling"></a>

Con Application Auto Scaling, puoi creare una pianificazione personalizzata in base alle variazioni di carico prevedibili. Per ulteriori informazioni ed esempi, consulta le sezioni [Dimensionamento pianificato per Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) nella Guida per l'utente di Application Auto Scaling e [Pianificazione della simultaneità fornita di AWS Lambda per i picchi di utilizzo ricorrenti](https://aws.amazon.com/blogs/compute/scheduling-aws-lambda-provisioned-concurrency-for-recurring-peak-usage/) nel blog di calcolo AWS.

### Monitoraggio degli obiettivi
<a name="managing-provisioned-concurrency-targeting"></a>

Con il monitoraggio degli obiettivi, Application Auto Scaling crea e gestisce un set di allarmi di CloudWatch in base al modo in cui definisci la policy di dimensionamento. Quando questi allarmi si attivano, Application Auto Scaling regola automaticamente la quantità di ambienti allocati utilizzando la simultaneità fornita. Utilizza il monitoraggio degli obiettivi per le applicazioni che non presentano modelli di traffico prevedibili.

Per dimensionare la simultaneità fornita utilizzando il tracciamento degli obiettivi, utilizza le operazioni `RegisterScalableTarget` e `PutScalingPolicy` dell'API di Application Auto Scaling. Ad esempio, se utilizzi l'AWS Command Line Interface (CLI), segui questi passaggi:

1. Registrare l'alias di una funzione come target di dimensionamento. Nell'esempio seguente viene registrato l'alias BLUE di una funzione denominata `my-function`:

   ```
   aws application-autoscaling register-scalable-target --service-namespace lambda \
       --resource-id function:my-function:BLUE --min-capacity 1 --max-capacity 100 \
       --scalable-dimension lambda:function:ProvisionedConcurrency
   ```

1. Applicare una policy di dimensionamento alla destinazione. Nell'esempio seguente viene configurato Application Auto Scaling per regolare la configurazione della simultaneità fornita per un alias per mantenerne l'utilizzo intorno al 70% (ma è possibile applicare qualsiasi valore compreso tra il 10% e il 90%).

   ```
   aws application-autoscaling put-scaling-policy \
       --service-namespace lambda \
       --scalable-dimension lambda:function:ProvisionedConcurrency \
       --resource-id function:my-function:BLUE \
       --policy-name my-policy \
       --policy-type TargetTrackingScaling \
       --target-tracking-scaling-policy-configuration '{ "TargetValue": 0.7, "PredefinedMetricSpecification": { "PredefinedMetricType": "LambdaProvisionedConcurrencyUtilization" }}'
   ```

L'output visualizzato dovrebbe essere di questo tipo:

```
{
    "PolicyARN": "arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:12266dbb-1524-xmpl-a64e-9a0a34b996fa:resource/lambda/function:my-function:BLUE:policyName/my-policy",
    "Alarms": [
        {
            "AlarmName": "TargetTracking-function:my-function:BLUE-AlarmHigh-aed0e274-xmpl-40fe-8cba-2e78f000c0a7",
            "AlarmARN": "arn:aws:cloudwatch:us-east-2:123456789012:alarm:TargetTracking-function:my-function:BLUE-AlarmHigh-aed0e274-xmpl-40fe-8cba-2e78f000c0a7"
        },
        {
            "AlarmName": "TargetTracking-function:my-function:BLUE-AlarmLow-7e1a928e-xmpl-4d2b-8c01-782321bc6f66",
            "AlarmARN": "arn:aws:cloudwatch:us-east-2:123456789012:alarm:TargetTracking-function:my-function:BLUE-AlarmLow-7e1a928e-xmpl-4d2b-8c01-782321bc6f66"
        }
    ]
}
```

Application Auto Scaling crea due allarmi in CloudWatch. Il primo allarme si attiva quando l'utilizzo della simultaneità fornita supera costantemente il 70%. In questo caso, Application Auto Scaling alloca più simultaneità fornita per ridurre l'utilizzo. Il secondo allarme si attiva quando l'utilizzo è costantemente inferiore al 63% (90% dell'obiettivo del 70%). In questo caso, Application Auto Scaling riduce la simultaneità di provisioning dell'alias.

**Nota**  
Lambda emette la `ProvisionedConcurrencyUtilization` metrica solo quando la funzione è attiva e riceve richieste. Durante i periodi di inattività, non viene emessa alcuna metrica e gli allarmi con autoscaling entreranno in funzione. `INSUFFICIENT_DATA` Di conseguenza, Application Auto Scaling non sarà in grado di regolare la simultaneità fornita dalla funzione. Ciò può comportare una fatturazione imprevista.

Nell'esempio seguente, una funzione si dimensiona tra una quantità minima e massima di concorrenza di cui è stato eseguito il provisioning in base all'utilizzo.

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/features-scaling-provisioned-auto.png)


**Legenda**
+ ![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/features-scaling-provisioned.instances.png) Istanze di funzione 
+ ![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/features-scaling-provisioned.open.png) Richieste aperte 
+ ![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/features-scaling-provisioned.provisioned.png) Simultaneità fornita 
+ ![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/features-scaling-provisioned.standard.png) Simultaneità standard

Quando il numero di richieste aperte aumenta, Application Auto Scaling aumenta la simultaneità fornita a grandi scaglioni fino a raggiungere il massimo configurato. Successivamente, la funzione può continuare a dimensionarsi in base alla simultaneità non riservata standard se non hai raggiunto il limiti di simultaneità dell'account. Quando l'utilizzo scende e rimane basso, Application Auto Scaling riduce la simultaneità fornita a piccoli scaglioni periodici.

Entrambi gli allarmi di Application Auto Scaling utilizzano per impostazione predefinita la statistica media. Le funzioni che rilevano picchi di traffico rapidi potrebbero non attivare questi allarmi. Ad esempio, supponiamo che la funzione Lambda venga eseguita velocemente (ovvero in 20-100 ms) e che il traffico presenti picchi rapidi. In tal caso, il numero di richieste supera la simultaneità fornita allocata durante il picco. Tuttavia, Application Auto Scaling richiede che il carico di picco duri almeno 3 minuti allo scopo di fornire ambienti aggiuntivi. Inoltre, entrambi gli allarmi di CloudWatch richiedono 3 punti dati che raggiungano la media obiettivo per attivare la policy di dimensionamento automatico. Se la funzione registra rapidi picchi di traffico, l'utilizzo della statistica **Maximum** anziché della statistica **Average** può essere più efficace nel dimensionare la simultaneità fornita per ridurre al minimo gli avvii a freddo.

Per ulteriori informazioni sulle policy di dimensionamento con monitoraggio degli obiettivi, consulta la sezione [Policy di dimensionamento con monitoraggio degli obiettivi per Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html).

# Comportamento del dimensionamento Lambda
<a name="scaling-behavior"></a>

Man mano che la funzione riceve altre richieste, Lambda aumenta automaticamente il numero di ambienti di esecuzione per gestire le richieste fino al raggiungimento della quota di simultaneità dell'account. Tuttavia, per proteggersi dall'eccessivo aumento in risposta a improvvisi picchi di traffico, Lambda limita la velocità di dimensionamento delle funzioni. Questa **velocità di scalabilità della simultaneità** è la velocità massima alla quale le funzioni del tuo account possono scalare in risposta all'aumento delle richieste. Si tratta della velocità con cui Lambda può creare nuovi ambienti di esecuzione. Il tasso di scalabilità della simultaneità è diverso dal limite di simultaneità a livello di account, che è la quantità totale di simultaneità disponibile per le funzioni.

## Velocità di dimensionamento della simultaneità
<a name="scaling-rate"></a>

**In ogni Regione AWS e per ogni funzione, la velocità di dimensionamento della simultaneità è di 1.000 istanze dell'ambiente di esecuzione ogni 10 secondi (o 10.000 richieste al secondo ogni 10 secondi).** In altre parole, ogni 10 secondi, Lambda può allocare al massimo 1.000 istanze aggiuntive dell'ambiente di esecuzione o gestire 10.000 richieste aggiuntive al secondo, per ciascuna delle tue funzioni.

Di solito, non è necessario preoccuparsi di questa limitazione. La velocità di dimensionamento di Lambda è sufficiente per la maggior parte dei casi d'uso.

È importante sottolineare che la velocità di scalabilità della simultaneità è un limite a livello di funzione. Ciò significa che ogni funzione del tuo account può dimensionarsi indipendentemente dalle altre funzioni.

**Nota**  
In pratica, Lambda fa del suo meglio per ricaricare la velocità di dimensionamento della simultaneità in modo continuo nel tempo, anziché con una singola ricarica di 1.000 unità ogni 10 secondi.

Lambda non accumula porzioni inutilizzate della velocità di dimensionamento della simultaneità. Ciò significa che in qualsiasi momento, la velocità di dimensionamento è sempre al massimo di 1.000 unità di simultaneità. Ad esempio, se non utilizzi nessuna delle 1.000 unità di simultaneità disponibili in un intervallo di 10 secondi, non accumulerai 1.000 unità aggiuntive nel successivo intervallo di 10 secondi. La tua velocità di dimensionamento della simultaneità sarà ancora di 1.000 unità nel successivo intervallo di 10 secondi.

Finché la tua funzione continua a ricevere un numero crescente di richieste, Lambda si dimensionerà alla massima velocità disponibile, fino al limite di simultaneità del tuo account. [Puoi limitare la quantità di simultaneità che le singole funzioni possono utilizzare configurando la simultaneità riservata.](configuration-concurrency.md) Quando le richieste arrivano più velocemente della capacità di dimensionamento della funzione, oppure quando la funzione ha raggiunto la simultaneità massima, le altre richieste restituiscono esito negativo con un errore di limitazione della larghezza di banda della rete (429).

# Monitoraggio della simultaneità
<a name="monitoring-concurrency"></a>

Lambda emette i parametri di CloudWatch Amazon per aiutarti a monitorare la concorrenza per le tue funzioni. Questo argomento illustra questi parametri e spiega come interpretarli.

**Topics**
+ [

## Parametri generici di simultaneità
](#general-concurrency-metrics)
+ [

## Parametri della simultaneità fornita
](#provisioned-concurrency-metrics)
+ [

## Lavorare con il parametro `ClaimedAccountConcurrency`
](#claimed-account-concurrency)

## Parametri generici di simultaneità
<a name="general-concurrency-metrics"></a>

Per monitorare la simultaneità delle funzioni Lambda, utilizza i seguenti parametri. La granularità di ogni parametro è di 1 minuto.
+ `ConcurrentExecutions`: il numero di chiamate simultanee attive in un determinato momento. Lambda emette questo parametro per tutte le funzioni, gli alias e le versioni. Per qualsiasi funzione nella console Lambda, Lambda visualizza il grafico di `ConcurrentExecutions` in modo nativo nella scheda **Monitoraggio**, sotto **Parametri**. Visualizza questo parametro utilizzando **MAX**.
+ `UnreservedConcurrentExecutions`: il numero di chiamate simultanee attive che utilizzano la simultaneità non riservata. Lambda emette questo parametro per tutte le funzioni in una regione. Visualizza questo parametro utilizzando **MAX**.
+ `ClaimedAccountConcurrency`: la quantità di simultaneità che non è disponibile per le invocazioni on demand. `ClaimedAccountConcurrency` corrisponde a `UnreservedConcurrentExecutions` più la quantità di simultaneità allocata (ovvero la simultaneità totale riservata più la simultaneità totale fornita). Se `ClaimedAccountConcurrency` supera il limite di simultaneità dell'account, puoi [richiedere un limite di simultaneità più elevato](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-concurrency-limit-increase/). Visualizza questo parametro utilizzando **MAX**. Per ulteriori informazioni, consulta [Lavorare con il parametro `ClaimedAccountConcurrency`](#claimed-account-concurrency).

## Parametri della simultaneità fornita
<a name="provisioned-concurrency-metrics"></a>

Per monitorare le funzioni Lambda che utilizzano la simultaneità fornita, utilizza i seguenti parametri. La granularità di ogni parametro è di 1 minuto.
+ `ProvisionedConcurrentExecutions`: il numero di istanze dell'ambiente di esecuzione che stanno attivamente elaborando una chiamata con la simultaneità fornita. Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questo parametro utilizzando **MAX**.

`ProvisionedConcurrentExecutions` non è uguale al numero totale di unità di simultaneità fornita allocate. Ad esempio, si supponga di allocare 100 unità di simultaneità fornita a una versione di funzione. In un dato minuto, se al massimo 50 di questi 100 ambienti di esecuzione gestivano le chiamate simultaneamente, il valore di **MAX** (`ProvisionedConcurrentExecutions`) è 50.
+ `ProvisionedConcurrencyInvocations`: il numero di volte in cui Lambda richiama il codice di funzione tramite la simultaneità fornita. Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questo parametro utilizzando **SUM**.

`ProvisionedConcurrencyInvocations` differisce da `ProvisionedConcurrentExecutions` per il fatto che `ProvisionedConcurrencyInvocations` conta il numero totale di chiamate, mentre `ProvisionedConcurrentExecutions` conta il numero di ambienti attivi. Per comprendere questa distinzione, esamina i seguenti scenari:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/concurrency-metrics-pc-executions-vs-invocations.png)


In questo esempio, supponiamo di ricevere 1 chiamata al minuto e che ogni chiamata richieda 2 minuti per essere completata. Ogni barra orizzontale arancione rappresenta una singola richiesta. Si supponga di allocare 10 unità di simultaneità fornita a questa funzione, in modo che ogni richiesta venga eseguita in base alla simultaneità fornita.

Tra i minuti 0 e 1, arriva la `Request 1`. **Al minuto 1**, il valore di **MAX** (`ProvisionedConcurrentExecutions`) è 1, poiché nell'ultimo minuto era attivo al massimo 1 ambiente di esecuzione. Anche il valore di **SUM** (`ProvisionedConcurrencyInvocations`) è 1, poiché nell'ultimo minuto è arrivata una nuova richiesta.

Tra i minuti 1 e 2, arriva la `Request 2` mentre la `Request 1` è ancora in esecuzione. **Al minuto 2**, il valore di **MAX** (`ProvisionedConcurrentExecutions`) è 2, poiché nell'ultimo minuto erano attivi al massimo 2 ambienti di esecuzione. Tuttavia, il valore di **SUM** (`ProvisionedConcurrencyInvocations`) è 1, poiché nell'ultimo minuto è arrivata solo una nuova richiesta. I parametri continuano a comportarsi in questo modo fino alla fine dell'esempio.
+ `ProvisionedConcurrencySpilloverInvocations`: il numero di volte in cui Lambda richiama la funzione con la simultaneità (riservata o fornita) standard quando è in uso tutta la simultaneità fornita. Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questo parametro utilizzando **SUM**. Il valore di `ProvisionedConcurrencyInvocations` \$1 `ProvisionedConcurrencySpilloverInvocations` deve essere uguale al numero totale di chiamate delle funzioni (cioè il parametro `Invocations`).

  `ProvisionedConcurrencyUtilization`: la percentuale di simultaneità fornita in uso (ossia il valore di `ProvisionedConcurrentExecutions` diviso per la quantità totale di simultaneità fornita allocata). Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questo parametro utilizzando **MAX**.

Ad esempio, si supponga di allocare 100 unità di simultaneità fornita a una versione di funzione. In un dato minuto, se al massimo 60 di questi 100 ambienti di esecuzione gestivano le chiamate contemporaneamente, il valore di **MAX** (`ProvisionedConcurrentExecutions`) è 60 e il valore di **MAX** (`ProvisionedConcurrencyUtilization`) è 0,6.

Un valore elevato di `ProvisionedConcurrencySpilloverInvocations` può indicare che è necessario allocare simultaneità fornita aggiuntiva per la funzione. In alternativa, è possibile [configurare Application Auto Scaling per gestire il dimensionamento automatico della simultaneità fornita](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html#managing-provisioned-concurency) in base a soglie predefinite.

Viceversa, valori costantemente bassi di `ProvisionedConcurrencyUtilization` possono indicare che hai allocato una quantità eccessiva di simultaneità fornita per la funzione.

## Lavorare con il parametro `ClaimedAccountConcurrency`
<a name="claimed-account-concurrency"></a>

Lambda utilizza il parametro `ClaimedAccountConcurrency` per determinare la quantità di simultaneità disponibile nell'account per le invocazioni on demand. Lambda calcola `ClaimedAccountConcurrency` utilizzando la formula seguente:

```
ClaimedAccountConcurrency = UnreservedConcurrentExecutions + (allocated concurrency)
```

`UnreservedConcurrentExecutions` corrisponde al numero di invocazioni simultanee attive che utilizzano la simultaneità non riservata. La simultaneità allocata è la somma delle due parti seguenti (sostituendo `RC` come "simultaneità riservata" e `PC` come "simultaneità fornita"):
+ Il valore `RC` totale in tutte le funzioni di una Regione.
+ Il valore `PC` totale in tutte le funzioni di una Regione che utilizzano`PC`, escluse le funzioni che utilizzano `RC`.

**Nota**  
Non puoi allocare più `PC` di `RC` per una funzione. Pertanto, il valore `RC` di una funzione è sempre maggiore o uguale al suo valore `PC`. Per calcolare il contributo alla simultaneità allocata per tali funzioni con sia `PC` che `RC`, Lambda considera solo `RC`, che è il valore massimo tra i due.

Per determinare la quantità di simultaneità disponibile per le invocazioni on demand, Lambda utilizza il parametro `ClaimedAccountConcurrency` anziché `ConcurrentExecutions`. Sebbene sia utile per tenere traccia del numero di invocazioni simultanee attive, il parametro `ConcurrentExecutions` non sempre riflette la disponibilità di simultaneità effettiva. Questo perché Lambda considera anche la simultaneità riservata e la simultaneità fornita per determinare la disponibilità.

Per illustrare il funzionamento di `ClaimedAccountConcurrency`, immaginiamo uno scenario in cui configuri una grande quantità di simultaneità riservata e simultaneità fornita nelle funzioni che rimane per buona parte inutilizzata. Nell'esempio seguente, supponiamo che il limite di simultaneità dell'account sia 1.000 e che vi siano due funzioni principali nell'account: `function-orange` e `function-blue`. Assegni 600 unità di simultaneità riservata per `function-orange`. Assegni 200 unità di simultaneità fornita per `function-blue`. Supponiamo che, nel corso del tempo, implementi ulteriori funzioni e osservi lo schema di traffico seguente:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/claimed-account-concurrency.png)


Nel diagramma precedente, le linee nere indicano l'uso effettivo della simultaneità nel tempo, mentre la linea rossa indica il valore di `ClaimedAccountConcurrency` nel tempo. In tutto lo scenario, il valore minimo di `ClaimedAccountConcurrency` è 800, nonostante lo scarso utilizzo effettivo di simultaneità nelle funzioni. Questo perché hai assegnato 800 unità totali di simultaneità per `function-orange` e `function-blue`. Dal punto di vista di Lambda, hai "rivendicato" questa simultaneità per l'uso, quindi ti rimangono in effetti solo 200 unità di simultaneità per le altre funzioni.

In questo scenario, la concorrenza allocata è 800 nella formula `ClaimedAccountConcurrency`. Possiamo quindi ricavare il valore di `ClaimedAccountConcurrency` in corrispondenza di vari punti del diagramma:
+ In `t1`, `ClaimedAccountConcurrency` è 800 (800 \$1 0 `UnreservedConcurrentExecutions`).
+ In `t2`, `ClaimedAccountConcurrency` è 900 (800 \$1 100 `UnreservedConcurrentExecutions`).
+ In `t3`, `ClaimedAccountConcurrency` è di nuovo 900 (800 \$1 100 `UnreservedConcurrentExecutions`).

### Configurazione della `ClaimedAccountConcurrency` metrica in CloudWatch
<a name="claimed-account-concurrency-example"></a>

Lambda emette la metrica in`ClaimedAccountConcurrency`. CloudWatch Utilizza questo parametro insieme al valore di `SERVICE_QUOTA(ConcurrentExecutions)` per ottenere la percentuale di utilizzo della simultaneità nel tuo account, come mostrato nella formula seguente:

```
Utilization = (ClaimedAccountConcurrency/SERVICE_QUOTA(ConcurrentExecutions)) * 100%
```

La schermata seguente illustra come inserire graficamente questa formula. CloudWatch La linea `claim_utilization` verde rappresenta l'utilizzo della simultaneità nell'account, che è pari a circa il 40%:

![\[\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/claimed-account-concurrency-cloudwatch-graph.png)


La schermata precedente include anche un CloudWatch allarme che entra in `ALARM` stato quando l'utilizzo della concorrenza supera il 70%. Puoi utilizzare il parametro `ClaimedAccountConcurrency` insieme ad allarmi simili per determinare in modo proattivo quando potrebbe essere necessario richiedere un limite di simultaneità dell'account più elevato.