Diferencias entre el modelo de trabajo aislado y el modelo en proceso para .NET en Azure Functions
Hay dos modelos de ejecución para las funciones de .NET:
Modelo de ejecución | Descripción |
---|---|
Modelo de trabajo aislado | El código de función se ejecuta en un proceso de trabajo de .NET independiente. Se usa con versiones compatibles de .NET y .NET Framework. Para obtener más información, consulte Desarrollo de funciones de procesos de trabajo aislados en .NET. |
Modelo de proceso | El código de función se ejecuta en el mismo proceso que el proceso de host de Functions. Solo admite versiones de .NET de compatibilidad a largo plazo (LTS). Para obtener más información, consulte Desarrollo de funciones de la biblioteca de clases de .NET. |
Importante
El soporte técnico del modelo en proceso finalizará el 10 de noviembre de 2026. Se recomienda encarecidamente migrar las aplicaciones al modelo de trabajo aislado para obtener soporte técnico completo.
En este artículo se describe el estado actual de las diferencias funcionales y de comportamiento entre los dos modelos. Para migrar del modelo en proceso al modelo de trabajador aislado, consulte Migración de aplicaciones .NET del modelo en proceso al modelo de trabajador aislado.
Tabla comparativa del modelo de ejecución
Use la tabla siguiente para comparar las diferencias funcionales y de características entre los dos modelos:
Característica/comportamiento | Modelo de trabajo aislado | Modelo en proceso3 |
---|---|---|
Versiones de .NET compatibles | Versiones con soporte técnico de larga duración (LTS), Versiones con soporte técnico de términos estándar (STS), .NET Framework |
Versiones de soporte técnico a largo plazo (LTS), que terminan con .NET 8 |
Paquetes base | Microsoft.Azure.Functions.Worker Microsoft.Azure.Functions.Worker.Sdk |
Microsoft.NET.Sdk.Functions |
Paquetes de extensión de enlace | Microsoft.Azure.Functions.Worker.Extensions.* | Microsoft.Azure.WebJobs.Extensions.* |
Funciones duraderas | Compatible | Compatible |
Tipos de modelos expuestos mediante enlaces | Tipos simples Tipos serializables con JSON Matrices o enumeraciones Tipos de SDK de servicio4 |
Tipos simples Tipos serializables con JSON Matrices o enumeraciones Tipos de SDK de servicio4 |
Tipos de modelos de desencadenadores HTTP | HttpRequestData / HttpResponseData HttpRequest / IActionResult (mediante la integración de ASP.NET Core)5 |
HttpRequest / IActionResult5 HttpRequestMessage / HttpResponseMessage |
Interacción de enlaces de salida | Valores devueltos en un modelo expandido con: - una o varias salidas - matrices de salidas |
Valores devueltos (solo salida única),out parámetros,IAsyncCollector |
Enlaces imperativos1 | No compatible: en lugar de , trabaje con tipos de SDK directamente | Compatible |
Inserción de dependencia | Compatible (modelo mejorado coherente con el ecosistema de .NET) | Compatible |
Software intermedio | Compatible | No compatible |
Registro | ILogger<T> /ILogger se obtiene de FunctionContext o mediante la inserción de dependencias |
ILogger se pasa a la funciónILogger<T> mediante inserción de dependencias |
Dependencias de Application Insights | Compatible | Compatible |
Tokens de cancelación | Compatible | Compatible |
Tiempos de inicio en frío2 | Optimizaciones configurables | Optimizado |
ReadyToRun | Compatible | Compatible |
[Consumo flexible] | Compatible | No compatible |
.NET Aspire | Versión preliminar | No compatible |
1 Cuando necesite interactuar con un servicio mediante parámetros determinados en tiempo de ejecución, se recomienda usar directamente los SDK de servicios correspondientes en lugar de los enlaces imperativos. Los SDK son menos detallados, cubren más escenarios y tienen ventajas para el control y la depuración de errores. Esta recomendación se aplica a ambos modelos.
2 Los tiempos de inicio de acceso esporádico pueden verse también afectados en Windows al usar algunas versiones preliminares de .NET debido a la carga Just-In-Time de los marcos de versión preliminar. Este impacto se aplica tanto a los modelos dentro del proceso como fuera de proceso, pero puede ser notable cuando se comparan diferentes versiones. Este retraso para las versiones preliminares no está presente en los planes de Linux.
3 Las funciones de script de C# también se ejecutan dentro del proceso y usan las mismas bibliotecas que las funciones de biblioteca de clases dentro del proceso. Para más información, consulte la Referencia para desarrolladores de scripts de C# de Azure Functions (.csx).
4 Los tipos de SDK de servicio incluyen tipos del SDK de Azure para .NET, como BlobClient.
5 tipos de ASP.NET Core no se admiten para .NET Framework.
Versiones compatibles
Las versiones del tiempo de ejecución de Functions son compatibles con versiones específicas de .NET. Para obtener más información sobre las versiones de Functions, consulte Introducción a las versiones de tiempo de ejecución de Azure Functions. La compatibilidad con versiones depende de si las funciones se ejecutan en proceso o como proceso de trabajo aislado.
Nota
Para aprender a cambiar la versión del runtime de Functions que usa la aplicación de funciones, consulte la sesión Visualización y actualización de la versión actual del entorno de ejecución.
En la tabla siguiente, se muestra el nivel más alto de .NET o .NET Framework que se puede usar con una versión específica de Functions.
Versiones del entorno en tiempo de ejecución de Functions | Modelo de trabajo aislado | Modelo In-Process4 |
---|---|---|
Functions 4.x1 | .NET 9.0 .NET 8.0 .NET Framework 4.82 |
.NET 8.0 |
Functions 1.x3 | N/D | .NET Framework 4.8 |
1 .NET 6 se admitía anteriormente en ambos modelos, pero alcanzó el fin del soporte técnico oficial el 12 de noviembre de 2024. .NET 7 se admitía anteriormente en el modelo de trabajo aislado, pero llegó al final del soporte técnico oficial el 14 de mayo de 2024.
2 El proceso de compilación también requiere el SDK de .NET.
3 El soporte técnico finaliza para la versión 1.x del entorno de ejecución de Azure Functions el 14 de septiembre de 2026. Para más información, consulte este anuncio de soporte. Para seguir teniendo soporte completo, debería migrar sus aplicaciones a la versión 4.x.
4 El soporte técnico finaliza para el modelo In-Process el 10 de noviembre de 2026. Para más información, consulte este anuncio de soporte. Para seguir teniendo soporte técnico completo, debería migrar sus aplicaciones al modelo de trabajo aislado.
Para obtener las últimas noticias sobre las versiones de Azure Functions, incluida la eliminación de versiones secundarias específicas anteriores, revise los anuncios de Azure App Service.