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 soporte técnico1 Fecha esperada de EOL de la comunidad
.NET 8 GA 10 de noviembre de 2026
.NET 7 GA 14 de mayo de 2024
.NET 6 GA 12 de noviembre de 2024
.NET Framework 4.8 GA Consulte la directiva

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 20 GA 30 de abril de 2026
Node.js 18 GA 30 de abril de 2025
Node.js 16 GA 11 de septiembre de 2023*
Node.js 14 GA 30 de abril de 2023*

*La compatibilidad con Functions se ha extendido hasta el 30 de junio de 2024.

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.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.

Pasos siguientes