Runtime Lambda - AWS Lambda

Runtime Lambda

Lambda supporta più lingue attraverso l'uso di runtime. Un runtime fornisce un ambiente specifico del linguaggio che inoltra gli eventi di chiamata, le informazioni di contesto e le risposte tra Lambda e la funzione. Puoi utilizzare i runtime forniti da Lambda o puoi crearne uno personalizzato.

Lambda è indipendente dalla scelta del runtime. Per funzioni semplici, i linguaggi interpretati come Python e Node.js offrono le prestazioni più veloci. Per le funzioni con calcoli più complessi, i linguaggi compilati come Java sono spesso più lenti da inizializzare ma vengono eseguiti rapidamente nell'handler Lambda. La scelta del runtime dipende anche dalle preferenze degli sviluppatori e dalla familiarità del linguaggio.

Ogni versione del linguaggio di programmazione principale ha un runtime separato, con un identificatore di runtime univoco, ad esempio nodejs22.x o python3.13. Per configurare una funzione in modo da utilizzare una nuova versione principale del linguaggio, è necessario modificare l'identificatore di runtime. Poiché AWS Lambda non può garantire la compatibilità con le versioni precedenti tra le versioni principali, questa è un'operazione gestita dal cliente.

Per una funzione definita come immagine di container, scegli un runtime e la distribuzione Linux quando crei l'immagine di container. Per modificare il runtime, è necessario creare una nuova immagine di container.

Quando si utilizza un archivio di file con estensione .zip per il pacchetto di implementazione, è necessario scegliere un runtime quando si crea la funzione. Per modificare il runtime, è possibile aggiornare la configurazione della funzione. Il runtime è associato a una delle distribuzioni Amazon Linux. L'ambiente di esecuzione sottostante fornisce ulteriori librerie e variabili di ambiente alle quali è possibile accedere dal codice della funzione.

Lambda richiama la funzione in un ambiente di esecuzione. Un ambiente di esecuzione fornisce un ambiente di runtime sicuro e isolato che gestisce le risorse necessarie per eseguire la funzione. Lambda riutilizza l'ambiente di esecuzione da una chiamata precedente, se disponibile, oppure può creare un nuovo ambiente di esecuzione.

Per utilizzare altri linguaggi in Lambda, come Go o Rust, utilizza un runtime solo per il sistema operativo. L'ambiente di esecuzione Lambda offre un'interfaccia di runtime per ricevere gli eventi di chiamata e inviare le risposte. Puoi implementare altri linguaggi implementando un runtime personalizzato insieme al codice della funzione o in un livello.

Runtime supportati

Nella tabella seguente sono elencati i runtime Lambda supportati e le date di ritiro previste. Una volta ritirato un runtime, è ancora possibile creare e aggiornare le funzioni per un periodo limitato. Per ulteriori informazioni, consulta Utilizzo del runtime dopo la deprecazione. La tabella riporta le date attualmente previste per il ritiro dei runtime, in base alla nostra Policy di deprecazione del runtime. Tali date vengono indicate a scopo di pianificazione e sono soggette a modifiche.

Nome Identificatore Sistema operativo Data di ritiro Blocco creazione funzioni Blocco aggiornamento funzioni

Node.js 22

nodejs22.x

Amazon Linux 2023

30 aprile 2027

1 giugno 2027

1 luglio 2027

Node.js 20

nodejs20.x

Amazon Linux 2023

30 aprile 2026

1 giugno 2026

1 luglio 2026

Python 3.13

python3.13

Amazon Linux 2023

30 giugno 2029

31 luglio 2029

31 agosto 2029

Python 3.12

python3.12

Amazon Linux 2023

31 ottobre 2028

30 novembre 2028

10 gennaio 2029

Python 3.11

python3.11

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

Python 3.10

python3.10

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

Python 3.9

python3.9

Amazon Linux 2

15 dicembre 2025

3 febbraio 2026

9 marzo 2026

Java 21

java21

Amazon Linux 2023

30 giugno 2029

31 luglio 2029

31 agosto 2029

Java 17

java17

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

Java 11

java11

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

Java 8

java8.al2

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

.NET 9 (solo container)

dotnet9

Amazon Linux 2023

Non programmato

Non programmato

Non programmato

.NET 8

dotnet8

Amazon Linux 2023

10 novembre 2026

10 dicembre 2026

11 gennaio 2027

Ruby 3.4

ruby3.4

Amazon Linux 2023

Non programmato

Non programmato

Non programmato

Ruby 3.3

ruby3.3

Amazon Linux 2023

31 marzo 2027

30 aprile 2027

31 maggio 2027

Ruby 3.2

ruby3.2

Amazon Linux 2

31 marzo 2026

30 aprile 2026

31 maggio 2026

Runtime solo per il sistema operativo

provided.al2023

Amazon Linux 2023

30 giugno 2029

31 luglio 2029

31 agosto 2029

Runtime solo per il sistema operativo

provided.al2

Amazon Linux 2

30 giugno 2026

31 luglio 2026

31 agosto 2026

Nota

Per le nuove regioni, Lambda non supporterà i runtime per cui è previsto il ritiro entro i prossimi 6 mesi.

Lambda mantiene aggiornati i runtime gestiti e le immagini di base dei container corrispondenti con patch e supporto per le versioni minori. Per ulteriori informazioni, consulta Aggiornamenti di runtime Lambda.

Per interagire a livello di codice con altri Servizi AWS e risorse della funzione Lambda, puoi utilizzare uno degli SDK AWS. I runtime Node.js, Python e Ruby includono una versione dell'SDK AWS. Tuttavia, per mantenere il pieno controllo delle dipendenze e massimizzare la compatibilità con le versioni precedenti durante gli aggiornamenti automatici del runtime, ti consigliamo di includere sempre i moduli SDK utilizzati dal codice (insieme a qualsiasi dipendenza) nel pacchetto di implementazione della funzione o in un livello Lambda.

Ti consigliamo di utilizzare la versione SDK inclusa nel runtime solo quando non puoi includere pacchetti aggiuntivi nell’implementazione. Ad esempio, quando crei la funzione utilizzando l'editor di codice della console Lambda o il codice di funzione in linea in un modello CloudFormation.

Lambda aggiorna periodicamente le versioni degli SDK AWS inclusi nei runtime Node.js, Python e Ruby. Per determinare la versione dell'SDK AWS incluso nel runtime che stai utilizzando, consulta le seguenti sezioni:

Lambda continua a supportare il linguaggio di programmazione Go dopo il ritiro del runtime Go 1.x. Per ulteriori informazioni, consulta Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2 nell’AWS Compute Blog.

Tutti i runtime Lambda supportati supportano sia le architetture x86_64 che le architetture arm64.

Nuovi rilasci di runtime

Lambda fornisce runtime gestiti per le nuove versioni di linguaggio solo quando il rilascio raggiunge la fase di supporto a lungo termine (LTS) del ciclo di rilascio del linguaggio. Ad esempio, per il ciclo di rilascio di Node.js, quando il rilascio raggiunge la fase Active LTS.

Prima che raggiunga la fase di supporto a lungo termine, il rilascio rimane in fase di sviluppo e può ancora essere soggetto a modifiche sostanziali. Lambda applica in automatico gli aggiornamenti di runtime per impostazione predefinita, quindi le modifiche sostanziali a una versione di runtime potrebbe impedire alle funzioni di funzionare come previsto.

Lambda non fornisce runtime gestiti per le versioni di linguaggio che non sono pianificate per il rilascio LTS.

L'elenco seguente mostra il mese di lancio previsto per i runtime Lambda futuri. Queste date sono solo indicative e soggette a modifica.

  • Java 25 - Novembre 2025

  • Python 3.14: novembre 2025

  • Node.js 24: novembre 2025

  • .NET 10: gennaio 2026

Policy di deprecazione del runtime

I runtime Lambda per gli archivi di file .zip sono costruiti attorno a una combinazione di sistema operativo, linguaggio di programmazione e librerie software soggette ad aggiornamenti di manutenzione e sicurezza. In base alla policy di deprecazione standard di Lambda, un runtime diventa obsoleto quando uno dei suoi componenti principali raggiunge la fine del supporto a lungo termine (LTS) della community e gli aggiornamenti di sicurezza non sono più disponibili. In genere si tratta del runtime del linguaggio, anche se in alcuni casi un runtime può diventare obsoleto perché il sistema operativo (OS) raggiunge la fine dell'LTS.

Dopo che un runtime è diventato obsoleto, AWS potrebbe non applicare più patch di sicurezza o aggiornamenti a tale runtime e le funzioni che lo utilizzano non essere più idonee per il supporto tecnico. Tali runtime obsoleti vengono forniti "così come sono", senza alcuna garanzia e possono contenere bug, errori, difetti o altre vulnerabilità.

Per ulteriori informazioni sulla gestione degli aggiornamenti e del ritiro dei runtime, consulta le seguenti sezioni e Managing AWS Lambda runtime upgrades nel blog AWS Compute.

Importante

Occasionalmente, Lambda ritarda la deprecazione di un runtime Lambda per un periodo limitato oltre la data di fine del supporto della versione di linguaggio supportata dal runtime. Durante questo periodo, Lambda applica le patch di sicurezza soltanto al sistema operativo runtime. Una volta raggiunta la data di fine del supporto, Lambda non applica le patch di sicurezza ai runtime dei linguaggi di programmazione.

Modello di responsabilità condivisa

Lambda è responsabile della cura e della pubblicazione degli aggiornamenti di sicurezza per tutti i runtime gestiti e le immagini dei container supportati. Per impostazione predefinita, Lambda applica automaticamente questi aggiornamenti alle funzioni che utilizzano runtime gestiti. Se l'impostazione predefinita per l'aggiornamento automatico del runtime è stata modificata, consulta il modello di responsabilità condivisa dei controlli di gestione del runtime. Per le funzioni implementate utilizzando immagini di container, l'utente sarà responsabile della ricostruzione dell'immagine di container della funzione dall'immagine di base più recente e della nuova implementazione dell'immagine di container.

Quando un runtime diventa obsoleto, la responsabilità di Lambda per l'aggiornamento del runtime gestito e delle immagini di base del container cessa. L'utente è responsabile dell'aggiornamento delle funzioni per utilizzare un runtime o un'immagine di base supportata.

In tutti i casi, l'utente è responsabile dell'applicazione degli aggiornamenti al codice della funzione, comprese le sue dipendenze. Le tue responsabilità nell'ambito del modello di responsabilità condivisa sono riassunte nella tabella seguente.

Fase del ciclo di vita di runtime Responsabilità di Lambda Le tue responsabilità
Runtime gestito supportato

Fornisci aggiornamenti di runtime regolari con patch di sicurezza e altri aggiornamenti.

Applica automaticamente gli aggiornamenti di runtime per impostazione predefinita (vedi Modalità di aggiornamento del runtime per i comportamenti non predefiniti).

Aggiorna il codice della funzione, comprese le dipendenze, per risolvere eventuali vulnerabilità di sicurezza.
Immagine di container supportata Fornisci aggiornamenti di runtime regolari all'immagine di base del container con patch di sicurezza e altri aggiornamenti.

Aggiorna il codice della funzione, comprese le dipendenze, per risolvere eventuali vulnerabilità di sicurezza.

Ricostruisci e reimplementa regolarmente l'immagine di container utilizzando l'immagine di base più recente.

Runtime gestito prossimo alla deprecazione

Avvisa i clienti prima che il runtime diventi obsoleto tramite documentazione, AWS Health Dashboard, e-mail e Trusted Advisor.

La responsabilità per gli aggiornamenti del runtime termina quando il runtime diventa obsoleto.

Monitora la documentazione di Lambda, AWS Health Dashboard, la posta elettronica o Trusted Advisor per le informazioni sulla deprecazione dei runtime.

Aggiorna le funzioni a un runtime supportato prima che il runtime precedente diventi obsoleto.

Immagine di container che si avvicina alla deprecazione

Le notifiche di deprecazione non sono disponibili per le funzioni che utilizzano immagini di container.

La responsabilità per gli aggiornamenti dell'immagine di base del container termina quando il runtime diventa obsoleto.

Fai attenzione alle pianificazioni di deprecazione e alle funzioni di aggiornamento a un'immagine di base supportata prima che l'immagine precedente diventi obsoleta.

Utilizzo del runtime dopo la deprecazione

Dopo che un runtime è diventato obsoleto, AWS potrebbe non applicare più patch di sicurezza o aggiornamenti a tale runtime e le funzioni che lo utilizzano non essere più idonee per il supporto tecnico. Sebbene sia possibile continuare a invocare le funzioni all'infinito, AWS consiglia caldamente di eseguire la migrazione a un runtime supportato. I runtime obsoleti vengono forniti "così come sono", senza alcuna garanzia, e possono contenere bug, errori, difetti o altre vulnerabilità. Le funzioni che utilizzano un runtime obsoleto possono inoltre presentare un peggioramento delle prestazioni o altri problemi, come la scadenza del certificato, che possono impedirne il corretto funzionamento.

Puoi aggiornare una funzione in modo che utilizzi un runtime supportato più recente in qualsiasi momento dopo il ritiro di un runtime. Consigliamo di testare la funzione con il nuovo runtime prima di applicare modifiche agli ambienti di produzione. Non sarà possibile ripristinare il runtime obsoleto dopo che gli aggiornamenti delle funzioni sono stati bloccati. Consigliamo di utilizzare le versioni e gli alias delle funzioni per consentire una implementazione sicura con rollback.

La seguente sequenza temporale descrive cosa succede quando un runtime viene bloccato:

Fase del ciclo di vita di runtime Quando What

Periodo di notifica obsolescenza

Almeno 180 giorni prima dell’obsolescenza

Definizione come obsoleto

Data di ritiro

  • AWS potrebbe non applicare più aggiornamenti di sicurezza o altri aggiornamenti.

  • Le funzioni non sono più idonee per il supporto tecnico.

  • Non è più possibile creare o aggiornare funzioni utilizzando il runtime obsoleto nella console Lambda. Puoi continuare a creare e aggiornare funzioni tramite AWS CLI, AWS SAM o CloudFormation.

Blocco creazione funzioni

Almeno 30 giorni dopo l’obsolescenza

  • Lambda inizia a bloccare la creazione di nuove funzioni.

  • Puoi continuare ad aggiornare il codice e la configurazione per le funzioni esistenti tramite AWS CLI, AWS SAM o CloudFormation.

Blocco aggiornamento funzioni

Almeno 60 giorni dopo l’obsolescenza

  • Lambda comincia a bloccare l'aggiornamento del codice e la configurazione per le funzioni esistenti.

  • Puoi comunque aggiornare la configurazione della funzione a un runtime supportato. Tuttavia, il ripristino del runtime obsoleto potrebbe essere bloccato.

Nota

Per alcuni runtime, AWS sta ritardando le date block-function-create e block-function-update oltre i normali 30 e 60 giorni dopo la deprecazione. AWS ha apportato questa modifica in risposta al feedback dei clienti per concedere più tempo per aggiornare le vostre funzioni. Fai riferimento alle tabelle riportate in Runtime supportati e Runtime obsoleti per vedere le date dei runtime. Lambda non comincerà a bloccare la creazione o gli aggiornamenti delle funzioni prima delle date riportate in queste tabelle.

Ricezione di notifiche di ritiro del runtime

Quando un runtime si avvicina alla data di ritiro, Lambda ti invia un avviso e-mail se nel tuo Account AWS ci sono funzioni che utilizzano quel particolare runtime. Le notifiche vengono visualizzate anche in AWS Health Dashboard e in AWS Trusted Advisor.

  • Ricezione di notifiche e-mail:

    Lambda ti invia un avviso e-mail almeno 180 giorni prima che un runtime venga ritirato. Questa e-mail elenca le versioni $LATEST di tutte le funzioni che utilizzano il runtime. Per visualizzare un elenco completo delle versioni delle funzioni interessate, utilizza Trusted Advisor o consulta Recuperare dati sulle funzioni Lambda che utilizzano un runtime obsoleto.

    Lambda invia una notifica e-mail al contatto di account principale del tuo Account AWS. Per informazioni sulla visualizzazione o l'aggiornamento degli indirizzi e-mail nel tuo account, consulta la pagina Aggiornamento delle informazioni di contatto della Guida generale di AWS.

  • Ricezione di notifiche attraverso AWS Health Dashboard:

    AWS Health Dashboard visualizza una notifica almeno 180 giorni prima che un runtime venga ritirato. Le notifiche compaiono nella pagina Stato del tuo account, in Altre notifiche. La scheda Risorse interessate della notifica elenca le versioni $LATEST di tutte le funzioni che utilizzano il runtime.

    Nota

    Per vedere un elenco completo e aggiornato delle versioni delle funzioni interessate, utilizza Trusted Advisor o consulta Recuperare dati sulle funzioni Lambda che utilizzano un runtime obsoleto.

    Le notifiche AWS Health Dashboard scadono 90 giorni dopo il ritiro del runtime interessato.

  • Uso di AWS Trusted Advisor

    Trusted Advisor visualizza una notifica almeno 180 giorni prima che un runtime venga ritirato. Le notifiche compaiono nella pagina Sicurezza. Un elenco delle funzioni interessate viene visualizzato in Funzioni AWS Lambda che utilizzano runtime ritirati. Questo elenco di funzioni mostra sia le versioni $LATEST sia le versioni pubblicate e si aggiorna in automatico per riflettere lo stato attuale delle funzioni.

    Puoi attivare le notifiche e-mail settimanali da Trusted Advisor nella pagina Preferenze della console Trusted Advisor.

Runtime obsoleti

Per i seguenti runtime è stata raggiunta la fine del supporto:

Nome Identificatore Sistema operativo Data di ritiro Blocco creazione funzioni Blocco aggiornamento funzioni

Node.js 18

nodejs18.x

Amazon Linux 2

1 settembre 2025

3 febbraio 2026

9 marzo 2026

.NET 6

dotnet6

Amazon Linux 2

20 dicembre 2024

3 febbraio 2026

9 marzo 2026

Python 3.8

python3.8

Amazon Linux 2

14 ottobre 2024

3 febbraio 2026

9 marzo 2026

Node.js 16

nodejs16.x

Amazon Linux 2

12 giugno 2024

3 febbraio 2026

9 marzo 2026

.NET 7 (solo container)

dotnet7

Amazon Linux 2

14 maggio 2024

N/D

N/D

Java 8

java8

Amazon Linux

8 gennaio 2024

8 febbraio 2024

9 marzo 2026

Go 1.x

go1.x

Amazon Linux

8 gennaio 2024

8 febbraio 2024

9 marzo 2026

Runtime solo per il sistema operativo

provided

Amazon Linux

8 gennaio 2024

8 febbraio 2024

9 marzo 2026

Ruby 2.7

ruby2.7

Amazon Linux 2

7 dicembre 2023

9 gennaio 2024

9 marzo 2026

Node.js 14

nodejs14.x

Amazon Linux 2

4 dicembre 2023

9 gennaio 2024

9 marzo 2026

Python 3.7

python3.7

Amazon Linux

4 dicembre 2023

9 gennaio 2024

9 marzo 2026

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

3 aprile 2023

3 aprile 2023

3 maggio 2023

Node.js 12

nodejs12.x

Amazon Linux 2

31 marzo 2023

31 marzo 2023

30 aprile 2023

Python 3.6

python3.6

Amazon Linux

18 luglio 2022

18 luglio 2022

29 agosto 2022

.NET 5 (solo container)

dotnet5.0

Amazon Linux 2

10 maggio 2022

N/D

N/D

.NET Core 2.1

dotnetcore2.1

Amazon Linux

5 gennaio 2022

5 gennaio 2022

13 aprile 2022

Node.js 10

nodejs10.x

Amazon Linux 2

30 luglio 2021

30 luglio 2021

14 febbraio 2022

Ruby 2.5

ruby2.5

Amazon Linux

30 luglio 2021

30 luglio 2021

31 marzo 2022

Python 2.7

python2.7

Amazon Linux

15 luglio 2021

15 luglio 2021

30 maggio 2022

Node.js 8.10

nodejs8.10

Amazon Linux

6 marzo 2020

4 febbraio 2020

6 marzo 2020

Node.js 4.3

nodejs4.3

Amazon Linux

5 marzo 2020

3 febbraio 2020

5 marzo 2020

Node.js 4.3 edge

nodejs4.3-edge

Amazon Linux

5 marzo 2020

31 marzo 2019

30 aprile 2019

Node.js 6.10

nodejs6.10

Amazon Linux

12 agosto 2019

12 luglio 2019

12 agosto 2019

.NET Core 1.0

dotnetcore1.0

Amazon Linux

27 giugno 2019

30 giugno 2019

30 luglio 2019

.NET Core 2.0

dotnetcore2.0

Amazon Linux

30 maggio 2019

30 aprile 2019

30 maggio 2019

Node.js 0.10

nodejs

Amazon Linux

30 agosto 2016

30 set 2016

31 ottobre 2016

In quasi tutti i casi, la data di fine del ciclo di vita del sistema operativo o della versione di un linguaggio è nota in anticipo. I collegamenti riportati di seguito forniscono le pianificazioni di fine utilizzo per ogni linguaggio supportato da Lambda come runtime gestito.

Policy di supporto su linguaggio e framework