Vue d’ensemble des versions du runtime Azure Functions

Azure Functions prend actuellement en charge deux versions de l’hôte du runtime. Le tableau suivant détaille les versions du runtime actuellement prises en charge, leur niveau de prise en charge et le moment où elles doivent être utilisées :

Version Niveau de support Description
4.x GA Version d’exécution recommandée pour les fonctions dans toutes les langues. Consultez les versions de langue prises en charge.
1.x GA (fin du support le 14 septembre 2026) Pris en charge uniquement pour les applications C# qui doivent utiliser .NET Framework. Cette version est en mode maintenance, et les améliorations ne seront apportées que dans les versions ultérieures. La prise en charge prendra fin pour la version 1.x le 14 septembre 2026. Nous vous recommandons vivement de migrer vos applications vers la version 4.x qui prend en charge .NET Framework 4.8, .NET 6, .NET 7 et .NET 8.

Important

Depuis le 13 décembre 2022, les applications de fonction exécutées sur les versions 2.x et 3.x du runtime Azure Functions ont atteint la fin du support étendu. Si vous souhaitez obtenir plus d’informations, consultez Versions mises hors services.

Cet article détaille certaines des différences entre les versions prises en charge, la façon dont vous pouvez créer chaque version et la manière de changer la version sur laquelle vos fonctions s’exécutent.

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.

Languages

Toutes les fonctions d’une application de fonction doivent partager le même langage. Vous avez choisi le langage des fonctions de votre application de fonction lors de la création de l’application. Le langage de votre application de fonction est conservé dans le paramètre FUNCTIONS_WORKER_RUNTIME et ne peut pas être modifié lorsqu’il existe des fonctions existantes.

Le tableau suivant présente les versions .NET prises en charge par Azure Functions. Sélectionnez votre langage de développement préféré en haut de l’article.

La version prise en charge de .NET dépend à la fois de la version de votre runtime Functions et du modèle d'exécution que vous avez choisi :

Le code de votre fonction s’exécute dans un processus Worker .NET distinct. Utilisez avec les versions prises en charge de .NET et .NET Framework. Pour plus d’informations, consultez Développer les fonctions de processus Worker isolé .NET.

Version prise en charge Niveau de support Date de fin de vie attendue de la communauté
.NET 8 GA 10 novembre 2026
.NET 7 GA 14 mai 2024
.NET 6 GA 12 novembre 2024
.NET Framework 4.8 GA Consulter la stratégie

Pour plus d’informations, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

Le tableau suivant présente les versions des langages prises en charge pour les fonctions Java. Sélectionnez votre langage de développement préféré en haut de l’article.

Version prise en charge Niveau de support Date de fin de vie attendue de la communauté
Java 21 (Linux uniquement) Aperçu Septembre 2028
Java 17 GA Septembre 2027
Java 11 GA Septembre 2027
Java 8 GA 30 novembre 2026

Pour plus d’informations, consultez le Guide des développeurs Java pour Azure Functions.

Le tableau suivant présente les versions des langages prises en charge pour les fonctions Node.js. Sélectionnez votre langage de développement préféré en haut de l’article.

Version prise en charge Niveau de support Date de fin de vie attendue de la communauté
Node.js 20 GA 30 avril 2026
Node.js 18 GA 30 avril 2025
Node.js 16 GA 11 septembre 2023*
Node.js 14 GA 30 avril 2023*

*Prise en charge sur Functions prolongée jusqu’au 30 juin 2024.

TypeScript est pris en charge via la transpilation vers JavaScript. Pour plus d’informations, consultez le Guide des développeurs Node.js sur Azure Functions.

Le tableau suivant présente les versions des langages prises en charge pour les fonctions PowerShell. Sélectionnez votre langage de développement préféré en haut de l’article.

Version prise en charge Niveau de support Date de fin de vie attendue de la communauté
PowerShell 7.2 GA 8 novembre 2024

Pour plus d'informations, consultez le Guide des développeurs PowerShell sur Azure Functions.

Le tableau suivant présente les versions des langages prises en charge pour les fonctions Python. Sélectionnez votre langage de développement préféré en haut de l’article.

Version prise en charge Niveau de support Date de fin de vie attendue de la communauté
Python 3.11 GA Octobre 2027
Python 3.10 GA Octobre 2026
Python 3.9 GA Octobre 2025
Python 3.8 GA Octobre 2024

Pour plus d'informations, consultez le Guide des développeurs Python sur Azure Functions.

Pour plus d’informations sur les modifications prévues sur la prise en charge des langages, consultez la Feuille de route Azure.

Pour découvrir d’autres informations sur les versions des langages des versions précédemment prises en charge du runtime Functions, consultez Versions du runtime mises hors service.

Exécuter sur une version spécifique

La version du runtime Functions utilisée par les applications publiées dans Azure dépend du paramètre d’application FUNCTIONS_EXTENSION_VERSION. Dans certains cas et pour certains langages, d’autres paramètres peuvent s’appliquer.

Par défaut, les applications de fonction créées dans le Portail Azure, par l’interface Azure CLI ou à partir des outils Visual Studio, sont configurées pour la version 4.x. Vous pouvez modifier cette version en fonction de vos besoins. Vous pouvez repasser à la version 1.x du runtime seulement après avoir créé votre application de fonction et avant d’ajouter des fonctions. La mise à jour vers une version majeure ultérieure est autorisée même pour les applications qui ont des fonctions existantes.

Migration des applications de fonction existantes

Lorsque votre application comporte des fonctions existantes, vous devez prendre des précautions avant de passer à une version majeure plus récente du runtime. Les articles suivants détaillent les changements cassants entre les versions majeures, y compris les changements cassants spécifiques aux langages. On vous fournit également des instructions pas à pas pour une migration réussie de votre application de fonction existante.

Changement de la version des applications dans Azure

Les valeurs des versions majeures du runtime suivantes sont utilisées :

Valeur Cible du runtime
~4 4.x
~1 1.x

Important

Ne modifiez pas arbitrairement ce paramètre d’application, car d’autres modifications des paramètres de l’application et d’autres modifications du code dans vos fonctions peuvent être nécessaires. Pour les applications de fonction existantes, suivez les instructions de migration.

Épinglage sur une version mineure spécifique

Pour résoudre les problèmes liés à l’exécution de votre application de fonction sur la version principale la plus récente, vous devez temporairement épingler votre application à une version mineure spécifique. Cela vous donne le temps de faire le nécessaire pour que votre application s’exécute correctement sur la dernière version majeure. La façon dont vous épinglez l’application à une version mineure n’est pas la même dans Windows et dans Linux. Pour en savoir plus, voir Comment cibler des versions du runtime Azure Functions.

Les versions mineures les plus anciennes sont régulièrement supprimées de Functions. Pour obtenir les dernières informations sur les versions Azure Functions, notamment sur la suppression des versions mineures les plus anciennes, surveillez les annonces Azure App Service.

Versions d’extension minimales

Il n’existe pas techniquement de corrélation entre les versions d’extension de liaison et la version du runtime Functions. Toutefois, à compter de la version 4.x, le runtime Functions applique une version minimale pour toutes les extensions de déclencheur et de liaison.

Si vous recevez un avertissement sur un package qui ne répond pas à une version minimale requise, vous devez mettre à jour ce package NuGet vers la version minimale comme vous le feriez normalement. La configuration minimale requise pour les extensions utilisées dans Functions v4.x est disponible dans le fichier de configuration lié.

Pour le script C#, mettez à jour la référence du pack d’extension dans host.json comme suit :

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Il n’existe pas techniquement de corrélation entre les versions du pack d’extensions et la version du runtime Functions. Toutefois, à compter de la version 4.x, le runtime Functions applique une version minimale pour les packs d’extensions.

Si vous recevez un avertissement disant que la version de votre pack d’extensions n’est pas conforme à la version minimale requise, mettez à jour votre référence de pack d’extensions existante dans host.json comme suit :

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Pour en savoir plus sur les packs d’extensions, consultez Packs d’extensions.

Versions supprimées

Important

La prise en charge de la version 1.x du runtime Azure Functions prendra fin le 14 septembre 2026. Nous vous recommandons fortement de migrer vos applications vers la version 4.x pour bénéficier d’une prise en charge complète.

Ces versions du runtime Functions ont atteint la fin du support étendu le 13 décembre 2022.

Version Niveau de prise en charge actuelle Niveau de prise en charge précédent
3.x Hors prise en charge GA
2.x Hors prise en charge GA

Dès que possible, vous devez migrer vos applications vers la version 4.x pour bénéficier d’une prise en charge complète. Pour obtenir un ensemble complet d’instructions de migration spécifiques à un langage, consultez Migrer des applications vers Azure Functions version 4.x.

Les applications utilisant les versions 2.x et 3.x peuvent toujours être créées et déployées à partir de votre pipeline DevOps CI/CD, et toutes les applications existantes continuent de s'exécuter sans interrompre les modifications. Toutefois, vos applications ne sont pas éligibles aux nouvelles fonctionnalités, aux correctifs de sécurité et à l’optimisation des performances. Vous ne pouvez obtenir le support du service associé qu’après avoir mis à niveau vos applications vers la version 4.x.

La fin de la prise en charge des versions 2.x et 3.x est due à la fin de la prise en charge de .NET Core 3.1, qu’elles avaient comme injection de dépendances. Cette exigence concerne toutes les langues prises en charge par Azure Functions.

Versions d’une application développée en local

Vous pouvez effectuer les mises à jour suivantes sur les applications de fonction afin de changer localement les versions ciblées.

Versions du runtime Visual Studio

Dans Visual Studio, vous sélectionnez la version du runtime au moment de créer un projet. Les outils Azure Functions pour Visual Studio prennent en charge les trois versions majeures du runtime. La version appropriée est utilisée au moment du débogage et de la publication, en fonction des paramètres de projet. Les paramètres de version sont définis dans le fichier .csproj, dans les propriétés suivantes :

<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>

Vous pouvez choisir net8.0, net7.0, net6.0 ou net48 comme framework cible si vous utilisez le modèle worker isolé. Si vous utilisez le Modèle in-process, vous pouvez uniquement choisir net6.0, et vous devez inclure l’extension Microsoft.NET.Sdk.Functions définie sur au moins 4.0.0.

Visual Studio Code et Azure Functions Core Tools

Azure Functions Core Tools est utilisé pour développer la ligne de commande, ainsi que par l’extension Azure Functions pour Visual Studio Code. Pour plus d’informations, voir Installer Azure Functions Core Tools.

Pour un développement avec Visual Studio Code, vous devrez peut-être également mettre à jour le paramètre utilisateur pour azureFunctions.projectRuntime afin qu’il corresponde à la version des outils installés. Ce paramètre met également à jour les modèles et les langages utilisés lors de la création de l’application de fonction.

Liaisons

À compter de la version 2.x, le runtime utilise un nouveau modèle d’extensibilité de liaison qui présente les avantages suivants :

  • Prise en charge pour les extensions de liaison de tiers.

  • Découplage du runtime et des liaisons. Cela permet de gérer les versions des extensions de liaison et leur publication de façon indépendante. Vous pouvez, par exemple, choisir de mettre à niveau vers une version d’une extension qui s’appuie sur une version plus récente d’un kit de développement logiciel (SDK) sous-jacent.

  • Un environnement d’exécution plus léger, où seules les liaisons en cours d’utilisation sont connues et chargées par le runtime.

À l’exception des déclencheurs HTTP et de la minuterie, toutes les liaisons doivent être explicitement ajoutées au projet d’application de fonction, ou enregistrées dans le portail. Pour plus d’informations, voir Inscrire des extensions de liaison.

Le tableau suivant indique les liaisons prises en charge dans chaque version du runtime.

Ce tableau présente les liaisons qui sont prises en charge dans les versions majeures du runtime Azure Functions :

Type 1.x1 2.x et ultérieur2 Déclencheur Entrée Output
Stockage Blob
Azure Cosmos DB
Explorateur de données Azure
Azure SQL
Dapr4
Event Grid
Hubs d'événements
HTTP et Webhooks
IoT Hub
Kafka3
Mobile Apps
Notification Hubs
Stockage File d’attente
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Stockage Table
Minuteur
Twilio

1La prise en charge de la version 1.x du runtime Azure Functions prendra fin le 14 septembre 2026. Nous vous recommandons fortement de migrer vos applications vers la version 4.x pour bénéficier d’une prise en charge complète.

2 À compter du runtime de la version 2.x, toutes les liaisons à l’exception de HTTP et du Timer doivent être inscrites. Consultez Inscrire des extensions de liaison.

3 Les déclencheurs ne sont pas pris en charge dans le plan Consommation. Nécessite des déclencheurs basés sur le runtime.

4 Pris en charge seulement dans Kubernetes, IoT Edge et les autres modes autohébergés uniquement.

Durée du délai d’expiration du conteneur de fonctions

La durée du délai d’expiration pour les fonctions d’une application de fonction est définie par la propriété functionTimeout dans le fichier projet host.json. Cette propriété s’applique spécifiquement aux exécutions de fonction. Une fois que le déclencheur démarre l’exécution d’une fonction, la fonction doit retourner/répondre dans la durée du délai d’expiration. Pour plus d’informations, consultez Améliorer les performances et la fiabilité d’Azure Functions.

Le tableau suivant indique les valeurs par défaut et maximales (en minutes) pour des plans spécifiques :

Plan Default Maximum1
Plan de consommation 5 10
Plan Premium 302 Illimité3
Plan dédié 302 Illimité3

1 Quel que soit le paramètre de délai d’expiration du conteneur de fonctions, 230 secondes est le temps maximum que peut prendre une fonction déclenchée via HTTP pour répondre à une demande. Cela est dû au délai d’inactivité par défaut d’Azure Load Balancer. Pour des temps de traitement plus longs, pensez à utiliser un modèle asynchrone Durable Functions ou différez le travail actuel et renvoyez une réponse immédiate.
2 Le délai d’expiration par défaut pour la version 1.x du runtime Functions est illimité.
3 Garanti pour une durée maximale de 60 minutes. La mise à jour corrective du système d’exploitation et du runtime, la mise à jour corrective des vulnérabilités et la mise à l’échelle des comportements peuvent toujours annuler les exécutions de fonctions. Veillez bien à écrire des fonctions robustes.

Étapes suivantes

Pour plus d’informations, consultez les ressources suivantes :