Langages pris en charge dans Azure Functions

Cet article explique les niveaux de prise en charge offerts pour les langages que vous pouvez utiliser avec Azure Functions. Il décrit également les stratégies de création de fonctions à l’aide de langages non pris en charge en mode natif.

Niveaux de prise en charge

Il y a deux niveaux de prise en charge :

  • Disposition générale (GA) : entièrement pris en charge et approuvé pour la production.
  • Préversion : pas encore pris en charge, mais le statut de disponibilité générale est prévu à l’avenir.

Langues par version du runtime

Plusieurs versions du runtime Azure Functions sont disponibles. Le tableau suivant montre les langages qui sont pris en charge dans chaque version du runtime.

Langage 1.x 2.x1 3.x1 4.x
C# GA (.NET Framework 4.8) Disponibilité générale (.NET Core 2.1) Disponibilité générale (.NET Core 3.1)
GA (.NET 6.0)
GA (.NET 7.0)
GA (.NET Framework 4.8)
JavaScript GA (Node.js 6) GA (Node.js 10 & 8) GA (Node.js 14, 12, & 10) Disponibilité générale (Node.js 18, 16, & 14)
F# GA (.NET Framework 4.8) GA (.NET Core 2.11) Disponibilité générale (.NET Core 3.1) GA (.NET 6.0)
GA (.NET 7.0)
Java N/A Disponibilité générale (Java 8) GA (Java 11 & 8) GA (Java 11 & 8)
Disponibilité générale (Java 17)
PowerShell N/A N/A N/A Disponibilité générale (PowerShell 7.2)
Python N/A GA (Python 3.7) GA (Python 3.9, 3.8, 3.7) GA (Python 3.9, 3.8, 3.7)
Préversion (3.10)
TypeScript2 N/A GA GA GA

1 Fin de vie (EOL) le 13 décembre 2022. Nous vous recommandons vivement la migration de vos applications vers la version 4.x afin de bénéficier d’une prise en charge totale.
2 Prise en charge via la transpilation vers JavaScript.

Pour plus d’informations sur les versions linguistiques prises en charge, consultez l’article du Guide du développeur spécifique à une langue.
Pour plus d’informations sur les modifications prévues sur la prise en charge des langages, consultez la Feuille de route Azure.

Détails de la prise en charge des langues

Le tableau suivant répertorie les langues prises en charge par les fonctions qui peuvent s’exécuter sur Linux ou Windows. Il indique également si votre langue prend en charge la modification dans le Portail Azure. Le langage est basé sur l’option Pile d’exécution que vous choisissez lors de la création de votre application de fonction dans le Portail Azure. Cela est identique à l'option --worker-runtime lors de l’utilisation de la commande func init dans Azure Functions Core Tools.

Langage Pile d’exécution Linux Windows Modification dans le portail
Bibliothèque de classes C#1 .NET
Script C# .NET
JavaScript Node.js
Python Python
Java Java
PowerShell PowerShell Core
TypeScript Node.js
Go/Rust/other Gestionnaires personnalisés

1 Dans le portail, vous ne pouvez actuellement pas créer d’applications de fonction qui s’exécutent sur .NET 7.0. Pour plus d’informations, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

Pour plus d’informations sur la prise en charge du système d’exploitation et du langage, consultez Prise en charge du système d’exploitation/du runtime.

Lorsque la modification dans le portail n’est pas disponible, vous devez développer vos fonctions localement.

Prise en charge de la version principale de langage

Azure Functions offre une garantie de prise en charge des versions principales des langages de programmation pris en charge. Pour la plupart des langages, des versions mineures ou correctives sont publiées pour mettre à jour une version principale prise en charge. Exemples de versions mineures ou correctives : Python 3.9.1 et Node 14.17. Une fois les nouvelles versions mineures des langages pris en charge disponibles, les versions mineures utilisées par vos applications de fonction sont automatiquement mises à niveau vers ces versions mineures ou correctives plus récentes.

Notes

Étant donné qu’Azure Functions peut supprimer la prise en charge des anciennes versions mineures à tout moment après lorsqu’une nouvelle version mineure devient disponible, vous ne devez pas lier vos applications de fonction à une version mineure/corrective spécifique d’un langage de programmation.

Gestionnaires personnalisés

Les gestionnaires personnalisés sont des serveurs web légers qui reçoivent des événements de l’hôte Azure Functions. Tout langage qui prend en charge les primitives HTTP peut implémenter un gestionnaire personnalisé. Cela signifie que les gestionnaires personnalisés peuvent être utilisés pour créer des fonctions dans des langages qui ne sont pas officiellement prises en charge. Pour en savoir plus, consultez Gestionnaires personnalisés Azure Functions.

Extensibilité de langage

À compter de la version 2.x, le runtime est conçu pour offrir une extensibilité de langage. Les langages JavaScript et Java dans le runtime 2.x sont générés avec cette extensibilité.

Étapes suivantes

Pour savoir plus en détails comment développer des fonctions dans les langages pris en charge, voir les ressources suivantes :