Comprendere l'ambiente di esecuzione di Lambda Managed Instances - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Comprendere l'ambiente di esecuzione di Lambda Managed Instances

Le istanze gestite Lambda forniscono un modello di distribuzione alternativo che esegue il codice funzionale su istanze Amazon di proprietà del cliente EC2 mentre Lambda gestisce gli aspetti operativi. L'ambiente di esecuzione per le istanze gestite presenta diverse differenze importanti rispetto alle funzioni Lambda (predefinite), in particolare nel modo in cui gestisce le chiamate simultanee e gestisce i cicli di vita dei container.

Nota: per informazioni sull'ambiente di esecuzione Lambda (predefinito), vedere Comprendere il ciclo di vita dell'ambiente di esecuzione Lambda.

Ciclo di vita dell'ambiente di esecuzione

Il ciclo di vita di un ambiente di esecuzione delle funzioni Lambda Managed Instances differisce da Lambda (impostazione predefinita) in diversi modi chiave:

Fase di init

Durante la fase di inizializzazione, Lambda esegue le seguenti operazioni:

  • Inizializza e registra tutte le estensioni

  • Avvia il punto di ingresso del runtime. Il runtime genera il numero configurato di runtime worker (l'implementazione dipende dal runtime)

  • Codice di inizializzazione della funzione Run (codice esterno al gestore)

  • Attendi che almeno un runtime worker segnali la disponibilità chiamando /runtime/invocation/next

La fase di inizializzazione è considerata completa quando le estensioni sono state inizializzate e almeno un runtime worker ha chiamato. /runtime/invocation/next La funzione è quindi pronta per elaborare le chiamate.

Nota

Per le funzioni Lambda Managed Instances, l'inizializzazione può richiedere fino a 15 minuti. Il timeout è il massimo di 130 secondi o il timeout della funzione configurata (fino a 900 secondi).

Invoca fase

La fase Invoke per le funzioni Lambda Managed Instances presenta diverse caratteristiche uniche:

Funzionamento continuo. A differenza di Lambda (impostazione predefinita), l'ambiente di esecuzione rimane continuamente attivo ed elabora le chiamate non appena arrivano senza bloccarsi tra una chiamata e l'altra.

Elaborazione parallela. È possibile eseguire più chiamate contemporaneamente all'interno dello stesso ambiente di esecuzione, ciascuna gestita da un runtime worker diverso.

Timeout indipendenti. Il timeout configurato della funzione si applica a ogni singola chiamata. Quando scade una chiamata, Lambda contrassegna quella chiamata specifica come fallita ma non interrompe le altre chiamate in esecuzione né termina l'ambiente di esecuzione.

Gestione della contropressione. Se tutti i runtime worker sono impegnati nell'elaborazione delle chiamate, le nuove richieste di chiamata vengono rifiutate fino a quando un worker non diventa disponibile.

Gestione e ripristino degli errori

La gestione degli errori negli ambienti di esecuzione delle funzioni Lambda Managed Instances è diversa da Lambda (impostazione predefinita):

Richiama i timeout. Quando scade una singola chiamata, Lambda restituisce un errore di timeout per quella chiamata. Tuttavia, Lambda Managed Instances non impone il timeout: il codice continuerà a funzionare. In qualità di sviluppatore di funzioni, sei responsabile del rilevamento e della gestione del timeout. L'oggetto context espone il tempo rimanente per l'invocazione, con un valore zero o negativo che indica un timeout. Le altre chiamate simultanee nell'ambiente di esecuzione continuano l'elaborazione normalmente.

Errori dei Runtime Worker. Se un processo di runtime worker si blocca, l'ambiente di esecuzione continua a funzionare con i restanti lavoratori sani.

L'estensione si blocca. Se un processo di estensione si blocca durante l'inizializzazione o l'operazione, l'intero ambiente di esecuzione viene contrassegnato come non integro e viene terminato. Lambda crea un nuovo ambiente di esecuzione per sostituirlo.

Nessun ripristino o riparazione. A differenza di Lambda (impostazione predefinita), le istanze gestite non tentano di reimpostare e reinizializzare l'ambiente di esecuzione dopo errori. Invece, i contenitori non integri vengono chiusi e sostituiti con altri nuovi.