Partager via


Comment cibler des versions du runtime Azure Functions

Une application de fonction s’exécute sur une version spécifique du runtime Azure Functions. Par défaut, vous créez des applications de fonction dans la dernière version 4.x du runtime Functions. Vos applications de fonction ne sont prises en charge que lorsqu’elles s’exécutent sur une version majeure prise en charge. Cet article détaille la configuration d’une application de fonction dans Azure afin de cibler ou d’épingler une version précise du runtime Functions, lorsque cela s’avère nécessaire.

Considérations

Gardez ces considérations à l’esprit lors du ciblage d’une version d’exécution spécifique :

  • Le plan Flex Consumption s’exécute uniquement sur la version 4.x du runtime. Étant donné que le plan Flex Consumption ne prend pas en charge le FUNCTIONS_EXTENSION_VERSION paramètre d’application, votre application ne peut pas cibler une version d’exécution spécifique lors de l’exécution dans ce plan.
  • La façon de cibler une version spécifique varie selon le système d’exploitation Windows ou Linux exécuté.
  • Cet article est spécifique à Windows ou Linux. Choisissez votre système d’exploitation en haut de l’article.
  • Si possible, exécutez toujours votre application sur la dernière version du runtime prise en charge. Épinglez votre application à une version spécifique uniquement si vous êtes invité à le faire en raison d’un problème avec la dernière version. Passez toujours à la dernière version du runtime dès que vos fonctions peuvent s’exécuter correctement.
  • Pendant le développement local, votre version installée d’Azure Functions Core Tools doit correspondre à la version principale du runtime utilisée par l’application de fonction dans Azure. Pour plus d’informations, consultez Versions de Core Tools.

Mettre à jour votre version du runtime

Si possible, exécutez toujours vos applications de fonction sur la dernière version prise en charge du runtime Azure Functions. Si votre application de fonction s’exécute actuellement sur une version antérieure du runtime, migrez votre application vers la version 4.x.

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, notamment les changements cassants spécifiques à un langage. On vous fournit également des instructions pas à pas pour une migration réussie de votre application de fonction existante.

Pour déterminer votre version actuelle du runtime, consultez Afficher la version actuelle du runtime.

Afficher la version actuelle du runtime

Vous pouvez afficher la version actuelle du runtime de votre application de fonction de l’une des manières suivantes :

Pour afficher et mettre à jour la version du runtime actuellement utilisée par une application de fonction, procédez comme suit :

  1. Dans le portail Azure, accédez à une application de fonction.

  2. Développez Paramètres, puis sélectionnez Configuration.

  3. Dans l’onglet Paramètres du runtime de fonction, notez la Version du runtime. Dans cet exemple, la version est définie sur ~4.

    Capture d’écran montrant comment afficher la version du runtime.

Épingler à une version spécifique

Azure Functions vous permet d’utiliser le paramètre d’application FUNCTIONS_EXTENSION_VERSION pour cibler la version du runtime utilisée par une application de fonction donnée. Si vous spécifiez uniquement la version principale (~4), l’application de fonction est automatiquement mise à jour vers de nouvelles versions mineures du runtime dès qu’elles deviennent disponibles. Les mises à jour de versions mineures sont automatiques, car les nouvelles versions mineures ne sont pas susceptibles d’introduire des modifications qui interrompent vos fonctions.

Les applications Linux utilisent le paramètre de site linuxFxVersion avec FUNCTIONS_EXTENSION_VERSION pour déterminer l’image de base Linux appropriée dans laquelle exécuter vos fonctions. Lorsque vous créez une nouvelle application de fonction sur Linux, le runtime choisit automatiquement l’image de base appropriée pour vos besoins en fonction de la version du runtime de votre pile de langages.

L’épinglage à une version d’exécution spécifique redémarre votre application de fonctions.

Lorsque vous spécifiez une version mineure spécifique (par exemple 4.0.12345) dans FUNCTIONS_EXTENSION_VERSION, vous épinglez l’application de fonction à cette version spécifique du runtime jusqu’à ce que vous choisissiez explicitement de revenir aux mises à jour automatiques de version. Épinglez uniquement une version mineure spécifique pour la durée strictement nécessaire à la résolution des problèmes de votre application de fonction empêchant le ciblage de la version majeure. Les anciennes versions mineures sont régulièrement supprimées de l’environnement de production. Lorsque votre application de fonction est épinglée à une version mineure qui est supprimée ultérieurement, votre application de fonction s’exécute sur la version existante la plus proche au lieu de la version définie dans FUNCTIONS_EXTENSION_VERSION. Les annonces App Service annoncent les suppressions de versions mineures.

Remarque

Lorsque vous essayez de publier à partir de Visual Studio sur une application épinglée à une version mineure spécifique du runtime, une boîte de dialogue vous invite à effectuer une mise à jour vers la dernière version ou à annuler la publication. Pour éviter cette vérification lorsque vous devez utiliser une version mineure spécifique, ajoutez la propriété <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> dans votre fichier .csproj.

Utilisez l’une de ces méthodes pour épingler temporairement votre application à une version spécifique du runtime :

Pour afficher et mettre à jour la version du runtime actuellement utilisée par une application de fonction, procédez comme suit :

  1. Dans le portail Azure, accédez à une application de fonction.

  2. Développez Paramètres, puis sélectionnez Configuration.

  3. Dans l’onglet Paramètres du runtime de fonction, notez la Version du runtime. Dans cet exemple, la version est définie sur ~4.

    Capture d’écran montrant comment afficher la version du runtime.

  1. Pour épingler votre application à une version mineure spécifique, dans le volet gauche, développez Paramètres, puis sélectionnez Variables d’environnement.

  2. Sous l’onglet Paramètres de l’application, sélectionnez FUNCTIONS_EXTENSION_VERSION, remplacez la valeurpar votre version mineure requise, puis sélectionnez Appliquer.

  3. Sélectionnez Appliquer, puis cliquez sur Confirmez pour appliquer les modifications et redémarrez l’application.

L’application de fonction redémarre une fois que la modification a été apportée au paramètre d’application.

Pour épingler votre application de fonctions à une version d'environnement d'exécution spécifique sur Linux, définissez une URL d'image de base spécifique à la version dans le paramètre de linuxFxVersion site au format DOCKER|<PINNED_VERSION_IMAGE_URI>.

Important

Les applications de fonction épinglées sur Linux ne reçoivent pas de mises à jour régulières de la sécurité et des fonctionnalités de l’hôte. Sauf si c’est recommandé par un professionnel du support technique, utilisez le paramètre FUNCTIONS_EXTENSION_VERSION et une valeur linuxFxVersion standard pour votre langage et votre version, comme Python|3.12. Pour les valeurs valides, consultez l’article de référence sur linuxFxVersion.

L'épinglage à durée d'exécution spécifique n'est actuellement pas pris en charge pour les applications Linux exécutés dans le cadre de la consommation.

L’exemple suivant montrel a valeur linuxFxVersion nécessaire pour épingler une application de fonction Node.js 16 à une version de runtime spécifique de 4.14.0.3 :

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16

Si nécessaire, un professionnel du support peut vous fournir un URI d’image de base valide pour votre application.

Utilisez les commandes Azure CLI suivantes pour voir et définir linuxFxVersion. Vous ne pouvez actuellement pas définir linuxFxVersion dans le portail ou en utilisant Azure PowerShell :

  • Pour afficher la version du runtime actuelle, utilisez la commande az functionapp config show :

    az functionapp config show --name <function_app> \
    --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
    

    Dans ce code, remplacez <function_app> par le nom de votre application de fonction. Remplacez également <my_resource_group> par le nom du groupe de ressources de votre application de fonction. La valeur actuelle de linuxFxVersion est retournée.

  • Pour mettre à jour le paramètre linuxFxVersion dans l’application de fonction, utilisez la commande az functionapp config set :

    az functionapp config set --name <FUNCTION_APP> \
    --resource-group <RESOURCE_GROUP> \
    --linux-fx-version <LINUX_FX_VERSION>
    

    Remplacez <FUNCTION_APP> par le nom de votre application de fonction. Remplacez également <RESOURCE_GROUP> par le nom du groupe de ressources de votre application de fonction. Enfin, remplacez <LINUX_FX_VERSION> par la valeur d’une image spécifique fournie par un professionnel du support.

Vous pouvez exécuter ces commandes à partir de Azure Cloud Shell en choisissant Ouvrir Cloud Shell dans les exemples de code précédents. Vous pouvez également utiliser Azure CLI en local pour exécuter cette commande après avoir lancé la commande az login pour vous connecter.

L’application de fonction redémarre une fois la modification apportée à la configuration du site.

Étapes suivantes