Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Dans Azure Functions, la prise en charge d’une pile de langages est limitée à des versions spécifiques. À mesure que de nouvelles versions deviennent disponibles, vous pouvez mettre à jour vos applications de fonction pour tirer parti des nouvelles fonctionnalités. La prise en charge de Functions prend également fin pour les versions plus anciennes et s’aligne généralement sur les calendriers de fin de support de la communauté. Pour plus d’informations, consultez la stratégie de prise en charge du runtime de langage. Pour connaître les versions prises en charge de différentes langues, consultez Langues par version du runtime.
Pour vous assurer que vos applications de fonction continuent à recevoir de la prise en charge, suivez les instructions de cet article pour les mettre à jour vers les dernières versions disponibles. La façon dont vous mettez à jour votre application de fonction dépend de plusieurs facteurs :
- Langage que vous utilisez pour développer vos applications de fonction. Veillez à sélectionner votre langage de programmation en haut de cet article.
- Système d’exploitation sur lequel votre application de fonction s’exécute dans Azure : Windows ou Linux.
- Le plan d’hébergement.
Remarque
Cet article vous montre comment mettre à jour la version .NET d’une application de fonction qui utilise le modèle worker isolé. Si votre application de fonction s’exécute sur une version antérieure de .NET et utilise le modèle in-process, tenez compte des options suivantes :
Préparer votre application de fonction
Avant de mettre à jour la configuration de la pile pour votre application de fonction dans Azure, effectuez les tâches décrites dans les sections suivantes.
Passer en revue les dépendances
Avant de mettre à jour les versions linguistiques, passez en revue ces dépendances potentielles :
-
Offres groupées d’extensions : vérifiez que votre
host.jsonfichier fait référence à une version d’offre groupée d’extensions compatible. Les offres groupées version 4.x sont recommandées pour la plupart des scénarios.
Extensions de liaison : mettez à jour toutes les références explicites aux extensions de liaison vers des versions compatibles avec votre nouvelle version de langage.
Dépendances de package : passez en revue et mettez à jour toutes les dépendances de package vers les versions qui prennent en charge votre version de langue cible.
Outils locaux : assurez-vous que vos outils de développement locaux, tels qu’Azure Functions Core Tools, sdk et IDE, prennent en charge la nouvelle version du langage.
Vérifier votre application de fonction localement
Testez et vérifiez localement le code de votre application de fonction sur la nouvelle version cible.
Pour mettre à jour le projet sur votre ordinateur local, procédez comme suit :
Vérifiez que la version cible du Kit de développement logiciel (SDK) .NET est installée.
Si vous ciblez une version en préversion, consultez les instructions functions relatives à la préversion des versions .NET pour vous assurer que la version est prise en charge. L’utilisation des préversions .NET peut nécessiter plus d’étapes.
Mettez à jour vos références aux dernières versions de Microsoft.Azure.Functions.Worker et Microsoft.Azure.Functions.Worker.Sdk.
Mettez à jour l’infrastructure cible de votre projet vers la nouvelle version. Pour les projets C#, vous devez mettre à jour l’élément
<TargetFramework>dans le fichier .csproj . Pour plus d’informations sur votre version, consultez Frameworks cibles.La modification de l’infrastructure cible de votre projet peut également nécessiter des modifications apportées aux parties de votre chaîne d’outils, en dehors du code du projet. Par exemple, dans Visual Studio Code, vous devrez peut-être mettre à jour le paramètre d’extension
azureFunctions.deploySubpathdans vos paramètres utilisateur ou dans le fichier .vscode/settings.json de votre projet. Recherchez les dépendances sur la version du framework qui existent en dehors de votre code de projet, dans le cadre des étapes de génération ou d’un pipeline d’intégration continue et de livraison continue (CI/CD).Apportez des mises à jour à votre code de projet dont la nouvelle version .NET a besoin. Consultez les notes de publication de la version pour obtenir des informations spécifiques. Vous pouvez également utiliser l’Assistant Mise à niveau .NET pour mettre à jour votre code en réponse aux modifications apportées aux versions majeures.
Après avoir apporté ces modifications, régénérez votre projet et testez-le pour confirmer que votre application de fonction s’exécute comme prévu.
Accéder au dernier runtime Functions
Vérifiez que votre application de fonction s’exécute sur la dernière version du runtime Functions (version 4.x). Vous pouvez déterminer la version du runtime dans le Portail Azure ou à l’aide d’Azure CLI.
Utilisez cette procédure pour déterminer la version de votre runtime Functions :
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration.
Accédez à l’onglet Paramètres d’exécution de la fonction et vérifiez la valeur de la version d’exécution. Votre application de fonction doit s’exécuter sur la version 4.x du runtime Functions (
~4).
Si vous devez mettre à jour votre application de fonction vers la version 4.x, consultez Migrer des applications d’Azure Functions version 1.x vers la version 4.x ou Migrer des applications d’Azure Functions version 3.x vers la version 4.x. Suivez les instructions de ces articles plutôt que de modifier simplement le FUNCTIONS_EXTENSION_VERSION paramètre.
Publier les mises à jour de l’application de fonction
Si vous avez mis à jour votre application de fonction pour qu’elle s’exécute correctement sur la nouvelle version, publiez les mises à jour de l’application de fonction avant de mettre à jour la configuration de la pile pour votre application de fonction.
Conseil
Pour simplifier le processus de mise à jour, réduisez les temps d’arrêt de vos applications de fonction et fournissez une version potentielle pour la restauration, publiez votre application de fonction mise à jour sur un emplacement intermédiaire. Pour plus d’informations, consultez l’article Emplacements de déploiement Azure Functions.
Lorsque vous publiez votre application de fonction mise à jour sur un emplacement intermédiaire, veillez à suivre les instructions de mise à jour spécifiques à l’emplacement dans le reste de cet article. Vous échangerez plus tard l’emplacement de préproduction mis à jour en production.
Envisagez d’utiliser des emplacements
Avant de mettre à jour la version linguistique de votre application de fonction, créez un emplacement de déploiement à utiliser pour les tests et le déploiement. Cette approche réduit le temps d’arrêt et offre une option de restauration facile si des problèmes se produisent. Les exemples de cet article utilisent un emplacement intermédiaire nommé staging.
Plan de consommation flexible : les slots ne sont actuellement pas pris en charge. Vous devez d’abord vérifier votre code mis à jour dans une application de fonction hors production. Lors du déploiement sur une application en cours d’exécution, vous pouvez utiliser la stratégie de mise à jour propagée. Pour plus d’informations, consultez les stratégies de mise à jour du site dans Flex Consumption.
Important
La stratégie de mise à jour propagée est actuellement en préversion et n’est pas recommandée pour les applications de production. Passez en revue les limitations et considérations actuelles avant d’activer cette stratégie dans n’importe quelle application de production.
Mettre à jour la configuration de la pile
La façon dont vous mettez à jour la configuration de la pile dépend de l’exécution de votre application de fonction sur Windows ou sur Linux dans Azure.
Lorsque vous utilisez un emplacement de préproduction, veillez à cibler vos mises à jour vers l’emplacement approprié.
Effectuez les étapes suivantes pour mettre à jour la version de Java :
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration. Si vous avez un environnement de mise en scène, sélectionnez l'emplacement concerné.
Dans l’onglet Paramètres généraux, mettez à jour la version Java vers la version souhaitée.
Cliquez sur Enregistrer. Lorsque vous êtes averti d’un redémarrage, sélectionnez Continuer.
Pour mettre à jour la version .NET, procédez comme suit :
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration. Si vous avez un environnement de mise en scène, sélectionnez l'emplacement concerné.
Dans l’onglet Paramètres généraux, mettez à jour la version .NET vers la version souhaitée.
Cliquez sur Enregistrer. Lorsque vous êtes averti d’un redémarrage, sélectionnez Continuer.
Pour mettre à jour la version Node.js, procédez comme suit :
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration. Si vous avez un environnement de mise en scène, sélectionnez l'emplacement concerné.
Dans l’onglet Paramètres généraux, mettez à jour la version Node.js vers la version souhaitée.
Cliquez sur Enregistrer. Lorsque vous êtes averti d’un redémarrage, sélectionnez Continuer. Cette modification met à jour le paramètre d’application
WEBSITE_NODE_DEFAULT_VERSION.
Pour mettre à jour la version de PowerShell, procédez comme suit :
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration. Si vous avez un environnement de mise en scène, sélectionnez l'emplacement concerné.
Dans l’onglet Paramètres généraux, mettez à jour la version PowerShell Core vers la version souhaitée.
Cliquez sur Enregistrer. Lorsque vous êtes averti d’un redémarrage, sélectionnez Continuer.
Le portail ne prend pas en charge les applications Python sur Windows. Accédez à l’onglet Linux à la place.
Votre application de fonction redémarre après que vous avez mis à jour la version.
Remarque
Pendant le redémarrage, votre application de fonction n’est pas disponible pendant une courte période, généralement de 30 à 60 secondes. Si vous mettez à jour une application de fonction de production directement (sans utiliser d’emplacement intermédiaire), planifiez ce temps d’arrêt pendant une fenêtre de maintenance. Le redémarrage met fin aux demandes en cours et les nouvelles demandes échouent jusqu’à ce que l’application redémarre correctement.
Vérifier la mise à jour
Une fois que votre application de fonction a redémarré, vérifiez que la mise à jour de version de langue a réussi.
Dans le portail Azure, recherchez et sélectionnez votre application de fonction. Dans le menu latéral, sélectionnez Paramètres>Configuration.
Sous l’onglet Paramètres généraux , vérifiez que la version de langue affiche la nouvelle version que vous avez sélectionnée.
Sélectionnez Vue d’ensemble dans le menu latéral et vérifiez que l’état s’affiche en cours d’exécution.
Après avoir vérifié la version, vérifiez également que vos fonctions fonctionnent comme prévu.
Permuter des emplacements
Si vous utilisez un emplacement de préproduction pour déployer votre projet de code et mettre à jour vos paramètres, basculez l’emplacement de préproduction en production. Pour plus d’informations, consultez la section Permuter des emplacements.
Résolution des problèmes
Si vous rencontrez des problèmes après la mise à jour de la version de langue, utilisez les conseils suivants pour résoudre les problèmes courants :
L’application fonctionnelle ne démarre pas
Symptômes: L’état de l’application de fonction s’affiche comme Arrêté ou redémarré en continu.
Solutions :
Vérifiez les journaux d’activité d’application dans le portail Azure :
- Accédez à votre application Functions et sélectionnez Surveillance>Flux de journal.
- Recherchez les messages d’erreur liés aux incompatibilités de version d’exécution ou de langue.
Vérifiez que toutes les dépendances sont compatibles avec la nouvelle version du langage :
- Pour .NET, vérifiez que les packages NuGet prennent en charge le framework cible.
- Pour Python, vérifiez que les versions de paquet dans
requirements.txtsont compatibles. - Pour Node.js, vérifiez que
package.jsonles dépendances prennent en charge la nouvelle version de Node.
Vérifiez la version du bundle d’extensions dans votre
host.jsonfichier. Les offres groupées plus anciennes peuvent ne pas prendre en charge les versions linguistiques plus récentes.
Les fonctions échouent avec des erreurs d'exécution
Symptômes: Les fonctions individuelles échouent lorsqu'elles sont activées, avec des erreurs dans les journaux de bord.
Solutions :
Passez en revue les changements majeurs pour votre version linguistique :
- Consultez les modifications majeures dans .NET pour votre version cible.
- Passez en revue les notes de publication Java pour obtenir des conseils de migration.
- Consultez les notes de publication Node.js pour identifier les changements cassants.
- Découvrez les nouveautés de Python pour les modifications spécifiques à la version.
- Passez en revue les notes de publication de PowerShell pour connaître les modifications.
Mettez à jour les extensions de liaison vers les versions compatibles avec votre nouvelle version de langue.
Testez les fonctions localement avec la nouvelle version du langage avant de redéployer.
Conflits de version d’extension
Symptômes : erreurs mentionnant des incompatibilités de version d’« extension » ou de « liaison ».
Solutions :
Mettez à jour la version du bundle d’extension vers
host.jsonla version 4.x ou ultérieure.{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.*, 5.0.0)" } }Pour les projets .NET qui utilisent des références d’extension explicites, mettez à jour tous les
Microsoft.Azure.WebJobs.Extensions.*packages vers leurs dernières versions.
Annuler la mise à jour
Si vous devez revenir à la version de langue précédente :
Si vous avez utilisé un emplacement de préproduction :
- Basculez l’emplacement de préproduction en production.
- Mettez à jour l’emplacement de préproduction vers la version précédente pour les futures tentatives.
Si vous avez mis à jour la production directement :
- Suivez les mêmes étapes de mise à jour dans cet article, mais spécifiez votre version de langue précédente.
- Redéployez votre version de code précédente.
Surveillez votre application de fonction pour vous assurer qu’elle revient à une opération normale.
Conseil
Pour éviter les problèmes, testez toujours les mises à jour de version linguistique dans un emplacement intermédiaire avant de les appliquer à la production. Créez une sauvegarde de la configuration de votre application de fonction avant d’apporter des modifications.