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:

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:

  1. Vai alla pagina Panoramica delle funzioni Cloud Run nella console Google Cloud.
  2. Fai clic sul nome della funzione per andare alla pagina Dettagli funzione.
  3. Fai clic su Modifica.
  4. Espandi la sezione Runtime, build... alla fine della pagina e fai clic su la scheda Runtime.
  5. In Contemporaneità, inserisci un valore di contemporaneità nel campo con l'etichetta Numero massimo di richieste in parallelo per istanza.
  6. Fai clic su Avanti.
  7. 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:

  1. Vai alla sezione Pagina Panoramica delle funzioni di Cloud Run in la console Google Cloud.
  2. Fai clic sul nome della funzione per andare alla pagina Dettagli funzione.
  3. 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.
  4. Fai clic su Modifica e il deployment di una nuova revisione nella parte superiore della pagina.
  5. Apri la scheda Contenitore.
  6. 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.

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