Lenguajes admitidos en Azure Functions
En este artículo se explican los niveles de soporte técnico que se ofrecen para su lenguaje preferido al usar Azure Functions. También se describen las estrategias para crear funciones mediante lenguajes no admitidos de forma nativa.
Hay dos niveles de compatibilidad:
- Disponibilidad general (GA) : totalmente compatible y aprobado para su uso en producción.
- Versión preliminar: todavía no se admite, pero se espera que llegue al estado de disponibilidad general en el futuro.
Lenguaje por versión de entorno de tiempo de ejecución
En la tabla siguiente se muestran las versiones de .NET compatibles con Azure Functions. Seleccione el lenguaje de desarrollo que prefiera en la parte superior de este artículo.
La versión admitida de .NET depende de la versión en tiempo de ejecución de Functions y del modelo de ejecución elegido:
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.
Versión admitida | Nivel de compatibilidad | Fecha esperada de EOL de la comunidad |
---|---|---|
.NET 9 | Vista previa | Consulte la directiva |
.NET 8 | GA | 10 de noviembre de 2026 |
.NET 6 | GA | 12 de noviembre de 2024 |
.NET Framework 4.8 | GA | Consulte la directiva |
.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.
Para más información, consulte Guía para ejecutar funciones de Azure Functions desarrolladas con C# en un proceso de trabajo aislado.
En la tabla siguiente se muestran las versiones del lenguaje compatibles con las funciones de Java. Seleccione el lenguaje de desarrollo que prefiera en la parte superior de este artículo.
Versión admitida | Nivel de compatibilidad | Fecha esperada de EOL de la comunidad |
---|---|---|
Java 21 (solo Linux) | Vista previa | Septiembre de 2028 |
Java 17 | GA | Septiembre de 2027 |
Java 11 | GA | Septiembre de 2027 |
Java 8 | GA | 30 de noviembre de 2026 |
Para más información, vea la Guía de Azure Functions para desarrolladores de Java.
En la tabla siguiente se muestran las versiones del lenguaje compatibles con las funciones de Node.js. Seleccione el lenguaje de desarrollo que prefiera en la parte superior de este artículo.
Versión admitida | Nivel de compatibilidad | Fecha esperada de EOL de la comunidad |
---|---|---|
Node.js 22 | Vista previa | 30 de abril de 2027 |
Node.js 20 | GA | 30 de abril de 2026 |
Node.js 18 | GA | 30 de abril de 2025 |
TypeScript se admite mediante la transpilación a JavaScript. Para más información, vea la Guía de Azure Functions para desarrolladores de Node.js.
En la tabla siguiente se muestran las versiones del lenguaje compatibles con las funciones de PowerShell. Seleccione el lenguaje de desarrollo que prefiera en la parte superior de este artículo.
Versión admitida | Nivel de compatibilidad | Fecha esperada de EOL de la comunidad |
---|---|---|
PowerShell 7.4 | GA | 10 de noviembre de 2026 |
PowerShell 7.2 | GA | 8 de noviembre de 2024 |
Para más información, consulte Guía del desarrollador de PowerShell para Azure Functions.
En la tabla siguiente se muestran las versiones del lenguaje compatibles con las funciones de Python. Seleccione el lenguaje de desarrollo que prefiera en la parte superior de este artículo.
Versión admitida | Nivel de compatibilidad | Fecha esperada de EOL de la comunidad |
---|---|---|
Python 3.11 | GA | Octubre de 2027 |
Python 3.10 | GA | Octubre de 2026 |
Python 3.9 | GA | Octubre de 2025 |
Python 3.8 | GA | Octubre de 2024 |
Para más información, consulte Guía de Azure Functions para desarrolladores de Python.
Para información sobre los cambios planeados en la compatibilidad de lenguaje, consulte Azure roadmap.
Detalles de la compatibilidad con idiomas
En la tabla siguiente se muestran los idiomas admitidos por Functions que se pueden ejecutar en Linux o Windows. También indica si el idioma admite la edición en Azure Portal. El idioma se basa en la opción Pila del entorno en tiempo de ejecución que elija al crear la aplicación de función en Azure Portal. Esto es igual que la opción --worker-runtime
cuando se usa el comando func init
en Azure Functions Core Tools.
Idioma | Pila en tiempo de ejecución | Linux | Windows | Edición en el portal |
---|---|---|---|---|
C# (modelo de trabajador aislado) | .NET | ✓ | ✓ | |
C# (modelo en curso) | .NET | ✓ | ✓ | |
Script de C# | .NET | ✓ | ✓ | ✓ |
JavaScript | Node.js | ✓ | ✓ | ✓ |
Python | Python | ✓ | X | ✓ |
Java | Java | ✓ | ✓ | |
PowerShell | PowerShell Core | ✓ | ✓ | ✓ |
TypeScript | Node.js | ✓ | ✓ | |
Go/Rust/otro | Controladores personalizados | ✓ | ✓ |
Para más información sobre la compatibilidad con el sistema operativo y el lenguaje, consulte Compatibilidad con el sistema operativo o el entorno de ejecución.
Cuando la edición en el portal no está disponible, debe desarrollar las funciones localmente en su lugar.
Compatibilidad con la versión principal del lenguaje
Azure Functions garantiza la compatibilidad con las versiones principales de los lenguajes de programación admitidos. En la mayoría de los lenguajes, se publican versiones secundarias o revisiones para actualizar una versión principal compatible. Algunos ejemplos de versiones secundarias o revisiones son Python 3.9.1 y Node 14.17. Una vez que estén disponibles nuevas versiones secundarias de los lenguajes admitidos, las versiones secundarias empleadas por las aplicaciones de Functions se actualizarán automáticamente a estas versiones secundarias o revisiones más recientes.
Nota
Dado que Azure Functions puede eliminar la compatibilidad con versiones secundarias anteriores en cualquier momento después de que esté disponible una nueva versión secundaria, no debe vincular las aplicaciones de Functions a una versión secundaria o revisión específica de un lenguaje de programación.
Controladores personalizados
Los controladores personalizados son servidores web ligeros que reciben eventos del host de Azure Functions. Cualquier lenguaje que admita primitivas de HTTP puede implementar un controlador personalizado. Esto significa que los controladores personalizados se pueden usar para crear funciones en lenguajes que no se admiten oficialmente. Para obtener más información, consulte Controladores personalizados de Azure Functions.
Extensibilidad de lenguaje
A partir de la versión 2.x, el entorno de tiempo de ejecución está diseñado para ofrecer extensibilidad de lenguaje. Los lenguajes JavaScript y Java en el entorno de ejecución 2.x están incluidos con esta extensibilidad.
Compatibilidad con controladores ODBC
En esta tabla se indica la compatibilidad del controlador ODBC con las funciones de Python:
Versión del controlador | Versión de Python |
---|---|
Controlador ODBC 18 | ≥ Python 3.11 |
Controlador ODBC 17 | ≤ Python 3.10 |