Lenguajes admitidos en Azure Functions

En este artículo se explican los niveles de soporte que se ofrecen para los lenguajes que puede usar con Azure Functions. También se describen las estrategias para crear funciones mediante lenguajes no admitidos de forma nativa.

Niveles de soporte

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

Hay disponibles varias versiones del entorno en tiempo de ejecución de Azure Functions. En la tabla siguiente se indica qué lenguajes se admiten en cada versión del sistema de tiempo de ejecución.

Idioma 1.x 2.x1 3.x1 4.x
C# Disponibilidad general (.NET Framework 4.8) Disponibilidad general (.NET Core 2.1) Disponibilidad general (.NET Core 3.1)
Disponibilidad general (.NET 6.0)
Disponibilidad general (.NET 7.0)
Disponibilidad general (.NET Framework 4.8)
JavaScript Disponibilidad general (Node.js 6) Disponibilidad general (Node.js 10 & 8) Disponibilidad general (Node.js 14, 12, & 10) Disponibilidad general (Node.js 18, 16, & 14)
F# Disponibilidad general (.NET Framework 4.8) Disponibilidad general (.NET Core 2.11) Disponibilidad general (.NET Core 3.1) Disponibilidad general (.NET 6.0)
Disponibilidad general (.NET 7.0)
Java N/D Disponibilidad general (Java 8) Disponibilidad general (Java 11 & 8) Disponibilidad general (Java 11 & 8)
Disponibilidad general (Java 17)
PowerShell N/D N/D N/D Disponibilidad general (PowerShell 7.2)
Python N/D Disponibilidad general (Python 3.7) GA (Python 3.9, 3.8, 3.7) GA (Python 3.10, 3.9, 3.8, 3.7)
TypeScript2 N/D GA Disponibilidad general Disponibilidad general

1 Alcanzó el fin de la vida útil (EOL) el 13 de diciembre de 2022. Se recomienda encarecidamente migrar las aplicaciones a la versión 4.x para obtener soporte completo.
2 Se admite mediante la transpilación de JavaScript.

Para más información sobre las versiones del lenguaje que se admiten, consulte el artículo de la guía para desarrolladores específica del lenguaje.
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
Biblioteca de clases C#1 .NET
Script de C# .NET
JavaScript Node.js
Python2 Python
Java Java
PowerShell PowerShell Core
TypeScript Node.js
Go/Rust/otro Controladores personalizados

1 Actualmente no se pueden crear en Azure Portal aplicaciones de funciones que se ejecuten en .NET 7.0. Para más información, consulte Guía para ejecutar funciones de Azure Functions desarrolladas con C# en un proceso de trabajo aislado.
2 La edición en el portal requiere que la función se defina en un archivo function.json. Dado que el modelo de programación de Python v2 usa decoradores de código de Python en lugar de function.json para definir las funciones, solo se admite el modelo de programación de Python v1 para el desarrollo en el portal.

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

Para obtener más información sobre cómo desarrollar funciones en los lenguajes admitidos, consulte los siguientes recursos: