Partager via


Packs d’extensions Azure Functions

Cet article explique comment les bundles d’extensions permettent à votre code de fonction d’utiliser tous les déclencheurs et liaisons pris en charge par Azure Functions. Vous découvrez également les niveaux de support et les stratégies de vos applications lorsque vous utilisez des offres groupées d’extensions.

Cet article s’applique uniquement aux développeurs Azure Functions qui utilisent des langages non-.NET. Pour savoir comment ajouter des extensions de liaison directement à vos applications de fonction C#, consultez Inscrire des extensions de liaison Azure Functions.

Overview

Les bundles d’extensions ajoutent un ensemble prédéfini d’extensions de liaison compatibles à votre application de fonction. Un bundle contient toutes les extensions de liaison actuellement prises en charge par Functions. Les offres groupées d’extensions sont associées à une version. Chaque version contient un ensemble spécifique de versions d’extension de liaison vérifiées pour fonctionner ensemble.

Vous devez toujours utiliser la dernière version de bundle dans votre application, le cas échéant.

Lorsque vous créez un projet Azure Functions à partir d’un modèle non-.NET, les bundles d’extensions sont déjà activés dans le fichier de l’application host.json .

Définir une référence de pack d'extensions

Vous définissez une référence d’ensemble d’extensions dans le host.json fichier projet en ajoutant une extensionBundle section, comme dans cet exemple :

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

Dans cet exemple, la valeur version de l’hôte Functions [4.0.0, 5.0.0) indique à l’hôte Functions d’utiliser une version groupée d’au moins 4.0.0 mais inférieure à 5.0.0, qui inclut toutes les versions potentielles de 4.x. Cette notation gère efficacement votre application sur la dernière version mineure disponible de l’offre groupée d’extensions v4.x.

Les propriétés suivantes sont disponibles dans extensionBundle :

Property Description
id Espace de noms pour les bundles d’extensions Azure Functions.
version Plage de versions de l’offre groupée à installer. Le runtime Azure Functions choisit toujours la version maximale autorisée définie par la plage de versions ou l’intervalle. Par exemple, une plage de valeurs version spécifiée sous la forme [4.0.0, 5.0.0) autorise toutes les versions de bundle commençant à la version 4.0.0 et s’arrêtant à la version 5.0.0 (non incluse). Pour plus d’informations, consultez la notation d’intervalle de spécification de plages de versions.

Conseil / Astuce

Vous pouvez également voir la plage de versions définie dans votre host.json comme [4.*, 5.0.0), qui est interprétée de la même façon que [4.0.0, 5.0.0).

Versions de bundle

Ce tableau répertorie toutes les Microsoft.Azure.Functions.ExtensionBundle versions et l’état de prise en charge actuel :

Version de l’offre groupée Version dans host.json État de prise en charge*
4.x [4.0.0, 5.0.0)
[4.*, 5.0.0)
Active
3.x [3.3.0, 4.0.0) Déconseillé
2.x [2.*, 3.0.0) Déconseillé
1.x [1.*, 2.0.0) Déconseillé

* Les versions de bundle déconseillées peuvent inclure des versions d’extension de liaison déconseillées. Pour optimiser la prise en charge et la fiabilité, vous devez effectuer une mise à niveau vers l’offre groupée version 4.x.

Par défaut, les offres groupées d’extensions sont définies via des plages de versions, ce qui garantit que la dernière version de l’offre groupée mineure est utilisée. Sélectionnez un lien de version dans le tableau pour passer en revue le fichier extensions.json qui définit le dernier bundle pour cette version majeure.

Considérations relatives aux offres groupées d’extensions

Gardez ces considérations à l’esprit lorsque vous travaillez avec des offres groupées d’extensions :

  • Dans la mesure du possible, vous devez définir une valeur version de plage host.json à partir du tableau précédent, comme par exemple [4.0.0, 5.0.0), au lieu de définir une plage personnalisée.
  • Utilisez la dernière plage de versions pour obtenir des performances optimales d’application et accéder aux dernières fonctionnalités.
  • Dans le cas peu probable où vous ne pouvez pas utiliser un bundle d’extensions, vous devez installer explicitement des extensions.
  • Lors de la mise à jour des extensions utilisées par une application déployée, Functions télécharge les nouvelles versions d’extension à partir du cdn.functions.azure.com point de terminaison. Pour que les mises à jour des extensions réussissent, le point de terminaison cdn.functions.azure.com doit être accessible à votre application de fonctions.

Mettre à niveau des paquets d’extensions

Il est important de conserver la version de votre offre groupée up-to-date afin que vos applications puissent continuer à être éligibles pour les nouvelles fonctionnalités, les correctifs de sécurité et les optimisations des performances.

Pour mettre à niveau votre application vers le bundle le plus récent, modifiez le fichier host.json à la racine de votre projet d’application. Définissez la valeur extensionBundle.version sur [4.0.0,5.0.0), qui doit ressembler à ceci dans votre fichier host.json :

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

Gardez ces considérations à l’esprit lors de la mise à niveau de la version du bundle d’extensions utilisée par votre application :

  • Le contenu de la dernière offre groupée 4.x est toujours disponible dans cette page de publication dans le dépôt.
  • Passez en revue la documentation de référence de toutes les extensions utilisées par votre application pour identifier les modifications majeures entre les versions. Pour obtenir la liste des versions d’extension incluses dans le bundle par défaut, consultez le fichier projet extension.json lié dans ce tableau. Vous pouvez consulter la page des mises en production de bundles dans le référentiel d’offres groupées pour obtenir des balises de version d’offre groupées spécifiques.
  • Vérifiez toujours votre application localement après la mise à niveau de la version du bundle pour garantir la compatibilité avec les extensions mises à jour. Vous pouvez utiliser la commande de démarrage func dans Azure Functions Core Tools ou F5 dans Visual Studio ou Visual Studio Code pour exécuter votre application de fonction localement.
  • La façon dont vous déclenchez des extensions à mettre à jour en fonction des modifications apportées à la version de bundle dans le fichier host.json dépend de votre environnement d’application :
    • Projet local : les extensions sont mises à jour localement lorsque Core Tools démarre, à partir de la func start commande ou lors du débogage dans vos outils de développement.
    • Application de fonction : les extensions sont mises à jour lorsque vous déployez le fichier de host.json mis à jour dans votre application de fonction dans Azure.

Stratégie de prise en charge des bundles d’extensions

Les versions principales d’un ensemble d’extensions peuvent se produire lorsqu’il existe des mises à jour de changement cassant dans l’une des extensions de liaison contenues. Ces changements cassants d’extension nécessitent que les mises à jour de l’offre groupée restent compatibles avec les SDK Azure sous-jacents. La mise à niveau du bundle garantit que vos applications continuent à recevoir de nouvelles fonctionnalités, améliorations des performances et prise en charge complète des produits.

Note

Étant donné que les mises à jour du bundle d’extensions sont pilotées par les mises à jour dans les SDK Azure sous-jacents, le cycle de prise en charge des bundles d’extensions suit généralement les stratégies de prise en charge des SDK Azure sous-jacents.

Microsoft vous avertit lorsqu’un bundle d’extensions ou une version d’extension de liaison est déconseillé. Ces notifications peuvent apparaître dans différentes parties de votre expérience Functions, telles que dans les journaux d’activité hôte, les tables Application Insights ou le portail Azure. Lorsque vous recevez ces notifications, vous devez démarrer le processus de planification et de mise à niveau de vos applications de fonction vers la dernière version prise en charge de l’offre groupée d’extensions.

Le cycle de prise en charge des offres groupées d’extensions suit les phases distinctes suivantes :

Phase Description
Aperçu Les versions préliminaires d’extensions de liaison spécifiques sont conservées dans un ensemble d’extensions en préversion (Microsoft.Azure.Functions.ExtensionBundle.Preview). Vous pouvez utiliser ce bundle d’extensions en préversion pour tirer parti des extensions en préversion et des nouveaux comportements dans les extensions existantes avant qu’elles n’atteignent la disponibilité générale. Pour plus d’informations, consultez Utiliser les offres groupées d’extensions en préversion.
Actif La version principale la plus récente des offres groupées d’extensions est considérée comme la version active. Nous vous recommandons cette version pour vos applications de fonction.
Dépréciation La version de bundle est remplacée par une version plus récente et est désormais déconseillée. Une fois qu’un bundle est déconseillé, il reçoit uniquement les correctifs de bogues critiques et les mises à jour de sécurité pendant une période de chevauchement limitée. Ce chevauchement est généralement d’au moins 12 mois, ce qui vous donne le temps de planifier, de tester et de mettre à niveau vos applications vers la dernière version de bundle.

Les applications de fonction qui continuent d’utiliser un bundle déconseillé peuvent toujours s’exécuter sur la plateforme. Toutefois, pour garantir l’accès aux nouvelles fonctionnalités, aux améliorations des performances, aux correctifs de sécurité et à la prise en charge complète, vous devez mettre à niveau vos applications de fonction vers une version de bundle prise en charge.

Vous pouvez afficher les versions du bundle d’extensions et leurs extensions incluses dans le référentiel d’offres groupées d’extensions Azure Functions. Vous pouvez également afficher la page des versions du SDK Azure pour obtenir un inventaire de toutes les extensions Functions. Vous trouverez des packages .NET individuels sur NuGet.org.

Utiliser des offres groupées d’extensions en préversion

Gardez ces considérations à l’esprit lorsque vous choisissez d’utiliser un ensemble d’extensions non-GA :

  • Les offres groupées en préversion peuvent inclure des fonctionnalités qui sont toujours en cours de développement et qui ne sont pas encore prêtes à être utilisées en production. Ils sont destinés à l’évaluation et aux tests dans des environnements hors production.
  • Les modifications importantes se produisent entre les versions préliminaires sans préavis. Ils peuvent inclure les modifications apportées aux éléments suivants :
    • Définitions de déclencheur et de liaison.
    • Extensions incluses dans la préversion.
    • Caractéristiques et stabilité des performances.
  • Les mises à jour de sécurité peuvent nécessiter la mise à niveau des versions.
  • Vous devez tester complètement les offres groupées en préversion dans des environnements hors production et éviter d’utiliser des offres groupées en préversion en production. Lorsque vous devez utiliser un bundle d’aperçu en production, prenez ces précautions supplémentaires :
    • Épinglez votre bundle à une version spécifique d’un bundle rigoureusement testé au lieu d'une gamme de versions. L’épinglage empêche la mise à niveau automatique de votre version d’offre groupée avant de pouvoir vérifier la mise à jour dans un environnement hors production.
    • Déplacez votre application vers une version d’offre groupée en disponibilité générale dès que la fonctionnalité devient disponible dans une version complète de l’offre groupée prise en charge.
  • Pour rester informé des mises à jour de bundle, notamment le passage de la préversion à la disponibilité générale, vous devez :