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 s’exécutent sur une version majeure 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, exécutez toujours vos fonctions sur la dernière version prise en charge du runtime Azure Functions. Vous devez épingler 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
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.
- Migrer de la version 3.x du runtime vers la version 4.x
- Migrer de la version 1.x du runtime vers la version 4.x
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 :
Dans le portail Azure, accédez à une application de fonction.
Développez Paramètres, puis sélectionnez Configuration.
Dans l’onglet Paramètres du runtime de fonction, notez la Version du runtime. Dans cet exemple, la version est définie sur
~4
.
É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 majeure (~4
), l’application de fonction est automatiquement mise à jour vers les nouvelles versions mineures du runtime lorsqu’elles deviennent disponibles. Les mises à jour de version mineures sont effectuées automatiquement, 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.
É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 de version 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 votre application de fonction est épinglée à une version mineure qui est ensuite 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 :
Pour afficher et mettre à jour la version du runtime actuellement utilisée par une application de fonction, procédez comme suit :
Dans le portail Azure, accédez à une application de fonction.
Développez Paramètres, puis sélectionnez Configuration.
Dans l’onglet Paramètres du runtime de fonction, notez la Version du runtime. Dans cet exemple, la version est définie sur
~4
.
Pour épingler votre application à une version mineure spécifique, dans le volet gauche, développez Paramètres, puis sélectionnez Variables d’environnement.
Sous l’onglet Paramètres de l’application, sélectionnez FUNCTIONS_EXTENSION_VERSION, remplacez la valeurpar votre version mineure requise, puis sélectionnez Appliquer.
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 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.
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 delinuxFxVersion
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.