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, les applications de fonction sont créées dans la dernière version 4.x du runtime Functions. Vos applications de fonction ne sont prises en charge que lorsqu’elles sont exécutées sur une version principale prise en charge. Cet article explique comment configurer une application de fonction dans Azure pour cibler ou épingler une version spécifique si nécessaire.

La façon de cibler une version spécifique varie selon le système d’exploitation Windows ou Linux exécuté. Cette version de l’article prend en charge Windows. Choisissez votre système d’exploitation en haut de l’article.

La façon de cibler une version spécifique varie selon le système d’exploitation Windows ou Linux exécuté. Cette version de l’article prend en charge Linux. Choisissez votre système d’exploitation en haut de l’article.

Important

Lorsque cela est possible, vous devez toujours exécuter vos fonctions sur la dernière version prise en charge du runtime Azure Functions. Vous ne devez épingler votre application sur une version spécifique que lorsque vous y êtes invité en raison d’un problème dans la dernière version. Vous devez toujours passer à 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

Lorsque cela est possible, vous devez toujours exécuter vos applications de fonctions 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, vous devez migrer 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, 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.

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 :

Appliquez la procédure suivante pour afficher et mettre à jour la version du runtime utilisée actuellement par une application de fonction.

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

  2. Sous Paramètres, sélectionnez Configuration. Dans l’onglet Paramètres du runtime de fonction, trouvez la Version du runtime. Notez la version du runtime spécifique. Dans l’exemple ci-dessous, la version est définie sur ~4.

    Screenshot showing how to view the runtime version.

É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. Lorsque vous spécifiez uniquement la version principale (~4), l’application de fonction est automatiquement mise à jour vers les nouvelles versions mineures du runtime quand elles deviennent disponibles. Les mises à jour de version mineures sont effectuées automatiquement, car les nouvelles versions mineures ne doivent pas introduire de changements cassants.

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.

Épingler à une version du runtime spécifique entraîne le redémarrage de votre application de fonction.

Lorsque vous spécifiez une version mineure spécifique (par exemple, 4.0.12345) dans FUNCTIONS_EXTENSION_VERSION, l’application de fonction est épinglée à cette version spécifique du runtime jusqu’à ce que vous choisissiez explicitement de revenir aux mises à jour automatiques. Vous devez uniquement épingler à une version mineure spécifique suffisamment longtemps pour résoudre les problèmes liés à votre application de fonction qui vous empêchent de cibler la version principale. Les anciennes versions mineures sont régulièrement supprimées de l’environnement de production. Lorsque vous êtes épinglé à une version mineure supprimée, votre application de fonction s’exécute plutôt sur la version existante la plus proche au lieu de la version définie dans FUNCTIONS_EXTENSION_VERSION. Les suppressions de versions mineures sont annoncées sur la page des annonces App Service.

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 :

Appliquez la procédure suivante pour afficher et mettre à jour la version du runtime utilisée actuellement par une application de fonction.

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

  2. Sous Paramètres, sélectionnez Configuration. Dans l’onglet Paramètres du runtime de fonction, trouvez la Version du runtime. Notez la version du runtime spécifique. Dans l’exemple ci-dessous, la version est définie sur ~4.

    Screenshot showing how to view the runtime version.

  1. Pour épingler votre application à une version mineure spécifique, sélectionnez Paramètres d’application>FUNCTIONS_EXTENSION_VERSION, remplacez Valeur par votre version mineure nécessaire, puis sélectionnez OK.

  2. Sélectionnez Enregistrer>Continuer pour appliquer les modifications et redémarrer 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 fonction à une version de runtime spécifique sur Linux, définissez une URL d’image de base spécifique à la version dans le paramètre de site linuxFxVersion 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.9. 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.

Voici un exemple de la linuxFxVersionvaleur 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