Differenze tra il modello di lavoro isolato e il modello In-Process per .NET in Funzioni di Azure
Esistono due modelli di esecuzione per le funzioni .NET:
Modello di esecuzione | Descrizione |
---|---|
Modello di lavoro isolato | 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. |
Modello di processo | Il codice della funzione viene eseguito nello stesso processo del processo host di Funzioni. Supporta solo versioni LTS (Long Term Support) di .NET. Per altre informazioni, vedere Sviluppare funzioni della libreria di classi .NET. |
Importante
Il supporto terminerà per il modello in-process il 10 novembre 2026. È consigliabile eseguire la migrazione delle app al modello di lavoro isolato per il supporto completo.
Questo articolo descrive lo stato corrente delle differenze funzionali e i comportamentali tra i due modelli. Per eseguire la migrazione dal modello In-Process al modello di lavoro isolato, vedere Eseguire la migrazione di app .NET dal modello In-Process al modello di lavoro isolato.
Tabella di confronto del modello di esecuzione
Usare la tabella seguente per confrontare le differenze funzionali e di funzionalità tra i due modelli:
Funzionalità/comportamento | Modello di lavoro isolato | Modello In-Process3 |
---|---|---|
Versioni di .NET supportate | Versioni con supporto a lungo termine (LTS), Versioni del supporto per termini standard (STS), .NET Framework |
Versioni con supporto a lungo termine (LTS), che terminano con .NET 8 |
Pacchetti core | Microsoft.Azure.Functions.Worker Microsoft.Azure.Functions.Worker.Sdk |
Microsoft.NET.Sdk.Functions |
Binding dei pacchetti di estensione | Microsoft.Azure.Functions.Worker.Extensions.* | Microsoft.Azure.WebJobs.Extensions.* |
Funzioni durevoli | Supportata | Supportata |
Tipi di modello esposti da associazioni | Tipi semplici Tipi serializzabili JSON Matrici/enumerazioni Tipi Service SDK4 |
Tipi semplici Tipi serializzabili JSON Matrici/enumerazioni Tipi Service SDK4 |
Tipi di modello di trigger HTTP | HttpRequestData / HttpResponseData HttpRequest / IActionResult (usando Integrazione dei componente di base ASP.NET)5 |
HttpRequest / IActionResult5 HttpRequestMessage / HttpResponseMessage |
Interazioni di associazione di output | Restituire valori in un modello espanso con: - singolo o più output - matrici di output |
Valori restituiti (solo output singolo),out parametri,IAsyncCollector |
Associazioni imperative1 | Non supportato: lavorare invece direttamente con i tipi SDK | Supportata |
Inserimento delle dipendenze | Supportate (modello migliorato coerente con l'ecosistema .NET) | Supportata |
Middleware | Supportata | Non supportato |
Registrazione | ILogger<T> /ILogger ottenuto da FunctionContext o tramite inserimento delle dipendenze |
ILogger è passato alla funzioneILogger<T> tramite inserimento delle dipendenze |
Dipendenze di Application Insights | Supportata | Supportata |
Token di annullamento | Supportata | Supportata |
Orari di inizio a freddo2 | Ottimizzazioni configurabili | Ottimizzazione |
ReadyToRun | Supportata | Supportata |
[Consumo Flex] | Supportata | Non supportato |
.NET Aspire | Anteprima | Non supportato |
1 Quando è necessario interagire con un servizio usando parametri determinati in fase di esecuzione, è consigliabile usare direttamente gli SDK corrispondenti del servizio tramite associazioni imperative. Gli SDK sono meno prolissi, coprono un maggior numero di scenari e offrono vantaggi per la gestione degli errori e il debug. Questo suggerimento si applica a entrambi i modelli.
2 I tempi di avvio a freddo potrebbero essere ulteriormente influenzati su Windows quando si usano alcune versioni di anteprima di .NET a causa del caricamento just-in-time dei framework di anteprima. Questo impatto si applica sia ai modelli In-Process che Out-of-Process, ma possono essere evidenti durante il confronto tra versioni diverse. Questo ritardo per le versioni di anteprima non è presente nei piani Linux.
3 Funzioni script C# vengono eseguite anche In-Process e usano le stesse librerie delle funzioni della libreria di classi In-Process. Per altre informazioni, vedere le informazioni di riferimento per gli sviluppatori di script C# di Funzioni di Azure (con estensione csx).
4 I tipi di Service SDK includono tipi di Azure SDK per .NET, ad esempio BlobClient.
5 I tipi di ASP.NET Core non sono supportati per .NET Framework.
Versioni supportate
Le versioni del runtime di Funzioni supportano versioni specifiche di .NET. Per altre informazioni sulle versioni di Funzioni, vedere Panoramica delle versioni del runtime per Funzioni di Azure. Il supporto della versione dipende anche dal fatto che le funzioni eseguono il processo di lavoro In-Process o isolato.
Nota
Per informazioni su come modificare la versione del runtime di Funzioni usata dall'app per le funzioni, vedere visualizzare e aggiornare la versione di runtime corrente.
La tabella seguente illustra il livello più elevato di .NET o .NET Framework che può essere usato con una versione specifica di Funzioni.
Versione del runtime di Funzioni | Modello di lavoro isolato | Modello in-process4 |
---|---|---|
Funzioni 4.x1 | .NET 9.0 .NET 8.0 .NET Framework 4.82 |
.NET 8.0 |
Funzioni 1.x3 | n/d | .NET Framework 4.8 |
1 .NET 6 è stato precedentemente supportato in entrambi i modelli, ma ha raggiunto la fine del supporto ufficiale il 12 novembre 2024. .NET 7 è stato precedentemente supportato nel modello di lavoro isolato, ma ha raggiunto la fine del supporto ufficiale il 14 maggio 2024.
2 Il processo di compilazione richiede anche .NET SDK.
3 Il supporto termina per la versione 1.x del runtime di Funzioni di Azure il 14 settembre 2026. Per altre informazioni, vedere questo annuncio relativo al supporto. Per la prosecuzione del supporto completo, eseguire la migrazione delle app alla versione 4.x.
4 Il supporto termina per il modello in-process il 10 novembre 2026. Per altre informazioni, vedere questo annuncio relativo al supporto. Per la prosecuzione del supporto completo, eseguire la migrazione delle app al modello di lavoro isolato.
Per le ultime notizie sulle versioni di Funzioni di Azure, inclusa la rimozione di versioni secondarie meno recenti specifiche, monitorare gli annunci del servizio app di Azure.