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.x 3.x 4.x
C# Disponibilidad general (.NET Framework 4.8) Disponibilidad general (.NET Core 2.11) Disponibilidad general (.NET Core 3.1)
Disponibilidad general (.NET 5.0)
Disponibilidad general (.NET 6.0)
JavaScript Disponibilidad general (nodo 6) Disponibilidad general (nodos 10 y 8) Disponibilidad general (nodos 14, 12 y 10) Disponibilidad general (nodo 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)
Java N/D Disponibilidad general (Java 8) Disponibilidad general (Java 11 y 8) Disponibilidad general (Java 11 y 8)
PowerShell N/D Disponibilidad general (PowerShell Core 6) Disponibilidad general (PowerShell 7.0 y Core 6) Disponibilidad general (PowerShell 7.0)
Python N/D Disponibilidad general (Python 3.7 y 3.6) Disponibilidad general (Python 3.9, 3.8, 3.7, y 3.6) Disponibilidad general (Python 3.9, 3.8)
TypeScript2 N/D GA GA GA

1 Las aplicaciones de biblioteca de clases de .NET dirigidas a la versión del entorno de ejecución 2.x se ejecutan en .NET Core 3.1 en el modo de compatibilidad de .NET Core 2.x. Para más información, consulte Consideraciones sobre Functions v2.x.
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 portal1
Biblioteca de clases C#2 .NET
Script de C# .NET
JavaScript Node.js
Python Python
Java Java
PowerShell PowerShell Core
TypeScript Node.js
Go/Rust/otro Controladores personalizados

1 Cuando se ejecuta en Linux, la edición en el portal solo se admite en un plan dedicado (App Service).
2 Actualmente no se pueden crear en el portal aplicaciones de función que se ejecuten en .NET 5.0. Para más información, consulte Desarrollo y publicación de funciones de .NET 5 mediante Azure Functions.

Para más información, consulte Compatibilidad con sistema operativo/entorno de tiempo 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: