Panoramica delle versioni del runtime per Funzioni di Azure

Funzioni di Azure supporta attualmente due versioni dell'host di runtime. La tabella seguente illustra in dettaglio le versioni di runtime attualmente supportate, il livello di supporto e quando devono essere usate:

Versione Livello di supporto Descrizione
4.x Disponibilità generale Versione di runtime consigliata per le funzioni in tutti i linguaggi. Vedere Versioni della lingua supportate.
1.x Disponibilità generale (il supporto termina il 14 settembre 2026) Supportato solo per le app C# che devono usare .NET Framework. Questa versione è in modalità manutenzione, con miglioramenti forniti solo nelle versioni successive. Il supporto terminerà per la versione 1.x il 14 settembre 2026. È consigliabile eseguire la migrazione delle app alla versione 4.x, che supporta .NET Framework 4.8, .NET 6, .NET 7 e .NET 8.

Importante

A partire dal 13 dicembre 2022, le app per le funzioni in esecuzione nelle versioni 2.x e 3.x del runtime di Funzioni di Azure hanno raggiunto la fine del supporto “Extended”. Per altre informazioni, vedere Versioni ritirata.

Questo articolo illustra in dettaglio alcune delle differenze tra le versioni supportate, come creare ogni versione e come modificare la versione in cui vengono eseguite le funzioni.

Livelli di supporto

Esistono due livelli di supporto:

  • Disponibile a livello generale - Il linguaggio è completamente supportato e approvato per l'uso in produzione.
  • Anteprima : non ancora supportato, ma previsto che raggiunga lo stato disponibile a livello generale in futuro.

Lingue

Tutte le funzioni in un'app per le funzioni devono condividere lo stesso linguaggio. Quando si crea l'app si sceglie il linguaggio delle funzioni nell'app per le funzioni. Il linguaggio dell'app per le funzioni viene mantenuto nell'impostazione FUNCTIONS_WORKER_RUNTIME e non può essere modificato quando sono presenti funzioni esistenti.

La tabella seguente illustra le versioni di .NET supportate da Funzioni di Azure. Selezionare il linguaggio di sviluppo preferito nella parte superiore dell'articolo.

La versione supportata di .NET dipende sia dalla versione del runtime di Funzioni che dal modello di esecuzione scelto:

Il codice della funzione viene eseguito in un processo di lavoro .NET separato. Usare con le versioni supportate di .NET e .NET Framework. Per altre informazioni, vedere Sviluppare funzioni di processo di lavoro isolato .NET.

Versione supportata Livello di supporto Data EOL della community prevista
.NET 8 Disponibilità generale 10 novembre 2026
.NET 7 Disponibilità generale 14 maggio 2024
.NET 6 Disponibilità generale 12 novembre 2024
.NET Framework 4.8 Disponibilità generale Vedere i criteri

Per altre informazioni, vedere Guida per l'esecuzione di Funzioni di Azure C# in un processo di lavoro isolato.

La tabella seguente illustra le versioni del linguaggio supportate per le funzioni Java. Selezionare il linguaggio di sviluppo preferito nella parte superiore dell'articolo.

Versione supportata Livello di supporto Data EOL della community prevista
Java 21 (solo Linux) Anteprima Settembre 2028
Java 17 Disponibilità generale Settembre 2027
Java 11 Disponibilità generale Settembre 2027
Java 8 Disponibilità generale 30 novembre 2026

Per altre informazioni, vedere Funzioni di Azure Guida per sviluppatori Java.

La tabella seguente illustra le versioni del linguaggio supportate per le funzioni di Node.js. Selezionare il linguaggio di sviluppo preferito nella parte superiore dell'articolo.

Versione supportata Livello di supporto Data EOL della community prevista
Node.js 20 Disponibilità generale 30 aprile 2026
Node.js 18 Disponibilità generale 30 aprile 2025
Node.js 16 Disponibilità generale 11 settembre 2023*
Node.js 14 Disponibilità generale 30 aprile 2023*

*Supporto per funzioni estese fino al 30 giugno 2024.

TypeScript è supportato tramite la transpiling in JavaScript. Per altre informazioni, vedere la guida per sviluppatori di Funzioni di Azure Node.js.

La tabella seguente illustra la versione del linguaggio supportata per le funzioni di PowerShell. Selezionare il linguaggio di sviluppo preferito nella parte superiore dell'articolo.

Versione supportata Livello di supporto Data EOL della community prevista
PowerShell 7.2 Disponibilità generale venerdì 8 novembre 2024

Per altre informazioni, vedere Funzioni di Azure Guida per sviluppatori di PowerShell.

La tabella seguente illustra le versioni del linguaggio supportate per le funzioni Python. Selezionare il linguaggio di sviluppo preferito nella parte superiore dell'articolo.

Versione supportata Livello di supporto Data EOL della community prevista
Python 3.11 Disponibilità generale Ottobre 2027
Python 3.10 Disponibilità generale Ottobre 2026
Python 3.9 Disponibilità generale Ottobre 2025
Python 3.8 Disponibilità generale Ottobre 2024

Per altre informazioni, vedere Funzioni di Azure Guida per sviluppatori Python.

Per informazioni sulle modifiche previste per il supporto dei linguaggi di programmazione, vedere Roadmap per Azure.

Per informazioni sulle versioni del linguaggio delle versioni supportate in precedenza del runtime di Funzioni, vedere Versioni di runtime ritirata.

Esecuzione in una versione specifica

La versione del runtime di Funzioni usata dalle app pubblicate in Azure è determinata dall'impostazione dell'applicazione FUNCTIONS_EXTENSION_VERSION. In alcuni casi e per determinate lingue, è possibile applicare altre impostazioni.

Per impostazione predefinita, le app per le funzioni create nella portale di Azure, dall'interfaccia della riga di comando di Azure o dagli strumenti di Visual Studio sono impostate sulla versione 4.x. Se necessario, è possibile modificare questa versione. È possibile effettuare il downgrade della versione di runtime alla versione 1.x solo dopo aver creato l'app per le funzioni, ma prima di aggiungere qualsiasi funzione. L'aggiornamento a una versione principale successiva è consentito anche con le app con funzioni esistenti.

Migrazione di app per le funzioni esistenti

Quando l'app ha funzioni esistenti, è necessario adottare precauzioni prima di passare a una versione di runtime principale successiva. Gli articoli seguenti illustrano in dettaglio le modifiche di rilievo tra le versioni principali, incluse le modifiche di rilievo specifiche della lingua. Forniscono anche istruzioni dettagliate per una corretta migrazione dell'app per le funzioni esistente.

Modifica della versione delle app in Azure

Vengono usati i valori di versione di runtime principali seguenti:

Valore Destinazione del runtime
~4 4.x
~1 1.x

Importante

Non modificare arbitrariamente questa impostazione dell'app, perché potrebbero essere necessarie altre modifiche alle impostazioni dell'app e alle modifiche apportate al codice della funzione. Per le app per le funzioni esistenti, seguire le istruzioni di migrazione.

Aggiunta a una versione secondaria specifica

Per risolvere i problemi che l'app per le funzioni potrebbe avere quando è in esecuzione nella versione principale più recente, è necessario aggiungere temporaneamente l'app a una versione secondaria specifica. L'aggiunta ti offre il tempo necessario per eseguire correttamente l'app nella versione principale più recente. Il modo in cui si aggiunge a una versione secondaria differisce tra Windows e Linux. Per altre informazioni, vedere Come specificare le versioni del run-time per Funzioni di Azure.

Le versioni secondarie meno recenti vengono rimosse periodicamente da Funzioni. Per le ultime notizie sulle versioni Funzioni di Azure, inclusa la rimozione di versioni secondarie meno recenti specifiche, monitorare gli annunci del servizio app Azure.

Versioni minime delle estensioni

Tecnicamente non esiste una correlazione tra le versioni dell'estensione di binding e la versione del runtime di Funzioni. Tuttavia, a partire dalla versione 4.x il runtime di Funzioni applica una versione minima per tutte le estensioni di trigger e binding.

Se viene visualizzato un avviso relativo a un pacchetto che non soddisfa una versione minima richiesta, è consigliabile aggiornare il pacchetto NuGet alla versione minima come si farebbe normalmente. I requisiti minimi di versione per le estensioni usate in Funzioni v4.x sono disponibili nel file di configurazione collegato.

Per lo script C#, aggiornare il riferimento al bundle di estensione nel host.json come indicato di seguito:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Tecnicamente non esiste una correlazione tra le versioni del bundle di estensione e la versione del runtime di Funzioni. Tuttavia, a partire dalla versione 4.x il runtime di Funzioni applica una versione minima per i bundle di estensioni.

Se viene visualizzato un avviso relativo alla versione del bundle di estensione che non soddisfa una versione minima richiesta, aggiornare il riferimento al bundle di estensione esistente nel host.json come indicato di seguito:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Per altre informazioni sui bundle di estensioni, vedere Bundle di estensioni.

Versioni ritirate

Queste versioni del runtime di Funzioni hanno raggiunto la fine del supporto esteso il 13 dicembre 2022.

Versione Livello di supporto corrente Livello di supporto precedente
3.x Supporto non supportato Disponibilità generale
2.x Supporto non supportato Disponibilità generale

Appena possibile, è consigliabile eseguire la migrazione delle app alla versione 4.x per ottenere il supporto completo. Per un set completo di istruzioni di migrazione specifiche della lingua, vedere Eseguire la migrazione delle app a Funzioni di Azure versione 4.x.

Le app che usano le versioni 2.x e 3.x possono comunque essere create e distribuite dalla pipeline DevOps CI/CD e tutte le app esistenti continuano a essere eseguite senza modifiche di rilievo. Tuttavia, le app non sono idonee per nuove funzionalità, patch di sicurezza e ottimizzazioni delle prestazioni. È possibile ottenere il supporto del servizio correlato solo dopo l'aggiornamento delle app alla versione 4.x.

La fine del supporto per le versioni 2.x e 3.x è dovuta alla fine del supporto per .NET Core 3.1, che aveva come dipendenza principale. Questo requisito influisce su tutte le lingue supportate da Funzioni di Azure.

Versioni dell'applicazione sviluppate in locale

È possibile apportare gli aggiornamenti seguenti alle app per le funzioni per modificare in locale le versioni di destinazione.

Versioni del runtime di Visual Studio

In Visual Studio è possibile selezionare la versione del runtime quando si crea un progetto. Funzioni di Azure strumenti per Visual Studio supporta le due versioni di runtime principali. Durante il debugging e la pubblicazione viene usata la versione corretta in base alle impostazioni del progetto. Le impostazioni della versione vengono definite nel file .csproj nelle proprietà seguenti:

<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>

È possibile scegliere net8.0, net7.0, net6.0o net48 come framework di destinazione se si usa il modello di lavoro isolato. Se si usa il modello in-process, è possibile scegliere net6.0solo e è necessario includere l'estensione Microsoft.NET.Sdk.Functions impostata su almeno 4.0.0.

Visual Studio Code e Funzioni di Azure Core Tools

Funzioni di Azure Core Tools viene usato per lo sviluppo da riga di comando e anche dall'estensione Funzioni di Azure per Visual Studio Code. Per altre informazioni, vedere Installare gli strumenti di base per Funzioni di Azure.

Per lo sviluppo di Visual Studio Code, è anche possibile aggiornare l'impostazione utente in modo che azureFunctions.projectRuntime corrisponda alla versione degli strumenti installati. Questa impostazione aggiorna anche i modelli e i linguaggi usati durante la creazione di un'app per le funzioni.

Bindings

A partire dalla versione 2.x, il runtime usa un nuovo modello di estendibilità dell'associazione che offre questi vantaggi:

  • Supporto per le estensioni di associazione di terze parti.

  • Separazione di runtime e associazioni. Questa modifica consente di applicare il controllo delle versioni alle estensioni di binding e di rilasciarle in modo indipendente. È ad esempio possibile scegliere di eseguire l'aggiornamento a una versione di un'estensione basata su una nuova versione di un SDK sottostante.

  • Ambiente di esecuzione più leggero, in cui solo le associazioni in uso sono note e vengono caricate dal runtime.

Ad eccezione dei trigger HTTP e timer, tutte le associazioni devono essere aggiunte in modo esplicito al progetto dell'app per le funzioni o registrate nel portale. Per altre informazioni, vedere Registrare le estensioni delle associazioni.

Nella tabella seguente sono indicati i binding supportati in ogni versione del runtime.

Questa tabella mostra le associazioni supportate nelle versioni principali del runtime di Funzioni di Azure:

Type 1.x1 2.x e versioni successive2 Trigger Input Output
Archiviazione BLOB
Azure Cosmos DB
Esplora dati di Azure
Azure SQL
Dapr4
Griglia di eventi
Hub eventi
HTTP e webhook
Hub IoT
Kafka3
App per dispositivi mobili
Hub di notifica di Azure
Archiviazione code
Redis
RabbitMQ3
SendGrid
Bus di servizio
SignalR
Archiviazione tabelle
Timer
Twilio

1Il supporto terminerà per la versione 1.x del runtime Funzioni di Azure il 14 settembre 2026. È consigliabile eseguire la migrazione delle app alla versione 4.x per il supporto completo.

2 A partire dalla versione 2.x runtime, tutte le associazioni ad eccezione di HTTP e Timer devono essere registrate. Vedere Registrare le estensioni delle associazioni.

3 I trigger non sono supportati nel piano a consumo. Richiede trigger basati sul runtime.

4 Supportato solo in Kubernetes, IoT Edge e in altre modalità self-hosted.

Durata del timeout di un'app per le funzioni

La durata del timeout per le funzioni in un'app per le functionTimeout funzioni è definita dalla proprietà nel file di progetto host.json . Questa proprietà si applica in modo specifico alle esecuzioni di funzioni. Dopo l'avvio dell'esecuzione della funzione, la funzione deve restituire/rispondere entro la durata del timeout. Per altre informazioni, vedere Migliorare le prestazioni e l'affidabilità Funzioni di Azure.

La tabella seguente mostra i valori predefiniti e massimi (in minuti) per piani specifici:

Piano Default Massimo1
Piano a consumo 5 10
Piano Premium 302 Illimitati3
Piano dedicato 302 Illimitati3

1 Indipendentemente dall'impostazione di timeout dell'app per le funzioni, 230 secondi è la quantità massima di tempo che una funzione attivata tramite HTTP può richiedere per rispondere a una richiesta. Il motivo è legato al timeout di inattività predefinito di Azure Load Balancer. Per tempi di elaborazione più lunghi, provare a usare lo schema asincrono di Durable Functions oppure rinviare il processo effettivo e restituire una risposta immediata.
2 Il timeout predefinito per la versione 1.x del runtime di Funzioni è illimitato.
3 Garantito per un massimo di 60 minuti. L'applicazione di patch del sistema operativo e di runtime, l'applicazione di patch alle vulnerabilità e il ridimensionamento dei comportamenti possono comunque annullare le esecuzioni delle funzioni in modo da garantire la scrittura di funzioni affidabili.

Passaggi successivi

Per ulteriori informazioni, vedi le seguenti risorse: