Contemporaneità
Le funzioni Cloud Run supportano la gestione di più richieste in parallelo un'istanza di una singola funzione. Ciò può essere utile per evitare avvii a freddo un'istanza già riscaldata può elaborare più richieste contemporaneamente, riducendo così la latenza complessiva.
Se la contemporaneità è abilitata, Cloud Run Functions non fornisce e l'isolamento tra le richieste in parallelo elaborate dalla stessa istanza di funzione. In questi casi, devi assicurarti che il codice della funzione sia sicuro da eseguire contemporaneamente. Tieni presente quanto segue in merito a determinati runtime dei linguaggi:
Node.js è intrinsecamente a thread singolo. Per sfruttare la contemporaneità, utilizza Lo stile del codice asincrono di JavaScript, che è idiomatico in Node.js. Consulta Controllo asincrono del flusso nella documentazione ufficiale di Node.js per maggiori dettagli.
Ti consigliamo di iniziare con una contemporaneità più bassa, ad esempio 8, e di spostarla. verso l'alto. Iniziare con una contemporaneità troppo elevata potrebbe tradursi in a causa di vincoli delle risorse (come memoria o CPU).
Per Python 3.8 e versioni successive, supporto di un'elevata contemporaneità per istanza di funzione richiede un numero sufficiente di thread per gestire la contemporaneità. Ti consigliamo di impostare una variabile di ambiente runtime in modo che il valore di thread sia uguale al valore di concorrenza, ad esempio:
THREADS=8
.
Per impostazione predefinita, le istanze di funzione gestiscono una sola richiesta alla volta. Puoi modifica questo comportamento per funzione impostando un valore di contemporaneità come mostrato in nella prossima sezione.
Imposta un valore di contemporaneità
Il valore predefinito della contemporaneità è 1. Puoi impostare il valore di contemporaneità di una funzione per sostituire il valore predefinito. Il valore di contemporaneità rappresenta il valore massimo di richieste in parallelo che una singola istanza della funzione può gestire.
Un valore di contemporaneità maggiore di 1 determina l'esecuzione del codice della funzione contemporaneamente su una singola istanza. Il valore massimo di contemporaneità è 1000 (sebbene ti consigliamo di iniziare con un valore più basso e procedere verso l'alto). L'impostazione di un un valore di contemporaneità maggiore di 1 richiede che una funzione abbia 1 o più vCPU - vedi Limiti di memoria per la memoria predefinita e vCPU.
Puoi impostare la contemporaneità per una funzione in uno dei seguenti modi:
- Funzioni di Cloud Run: gcloud CLI o la console Google Cloud.
- Cloud Run: gcloud CLI o console Google Cloud.
Impostare la concorrenza utilizzando le funzioni Cloud Run
gcloud
Puoi impostare un valore di contemporaneità utilizzando gcloud CLI eseguendo il deployment di un
con la funzione
--concurrency
Segnala:
gcloud functions deploy YOUR_FUNCTION_NAME \ --gen2 \ --concurrency=CONCURRENCY_VALUE \ FLAGS...
dove CONCURRENCY_VALUE è il numero massimo di richieste in parallelo consentite per istanza container. Lascia la concorrenza non specificata per ricevere il valore predefinito del server.
Console
Per impostare un valore di contemporaneità utilizzando la console Google Cloud:
- Vai alla pagina Panoramica delle funzioni Cloud Run nella console Google Cloud.
- Fai clic sul nome della funzione per andare alla pagina Dettagli funzione.
- Fai clic su Modifica.
- Espandi la sezione Runtime, build... alla fine della pagina e fai clic su la scheda Runtime.
- In Contemporaneità, inserisci un valore di contemporaneità nel campo con l'etichetta Numero massimo di richieste in parallelo per istanza.
- Fai clic su Avanti.
Fai clic su Esegui il deployment.
Questo passaggio è necessario affinché le modifiche abbiano effetto.
Impostare la concorrenza utilizzando Cloud Run
gcloud
Per impostare un valore di contemporaneità utilizzando gcloud CLI, aggiorna il
dal servizio Cloud Run sottostante e specificare
--concurrency
Segnala:
gcloud run services update YOUR_FUNCTION_NAME --concurrency CONCURRENCY_VALUE
dove CONCURRENCY_VALUE è il numero massimo di richieste in parallelo consentite per istanza container. Lascia contemporaneità non specificata su ricevono il valore predefinito del server.
Console
Per impostare un valore di contemporaneità utilizzando la console Google Cloud:
- Vai alla sezione Pagina Panoramica delle funzioni di Cloud Run in la console Google Cloud.
- Fai clic sul nome della funzione per andare alla pagina Dettagli funzione.
- Nel riquadro con l'etichetta Powered by Cloud Run, fai clic sul nome del tuo per andare alla funzione Cloud Run sottostante Pagina Dettagli del servizio.
- Fai clic su Modifica e il deployment di una nuova revisione nella parte superiore della pagina.
- Apri la scheda Contenitore.
Inserisci un valore di contemporaneità nel campo denominato Numero massimo di richieste in parallelo per istanza.
Se il valore fornito per Numero massimo di richieste in parallelo per istanza è maggiore di 1, scorri la pagina verso il basso e apri la sezione Contenitori . Assicurati che il campo CPU contenga un valore pari o superiore a 1.
Fai clic su Esegui il deployment.
Questo passaggio è necessario affinché le modifiche abbiano effetto.
Le funzioni di Cloud Run si basano sul supporto della contemporaneità fornito da in Cloud Run. Per saperne di più, vedi Numero massimo di richieste in parallelo per istanza (servizi) nella documentazione di Cloud Run.