Partager via


Démarrage rapide : Ajouter des indicateurs de fonctionnalité à une application Azure Functions

Dans ce guide de démarrage rapide, vous créez une application Azure Functions et utilisez des indicateurs de fonctionnalité dans celui-ci. Vous utiliserez la gestion des fonctionnalités d’Azure App Configuration pour stocker de manière centralisée tous les indicateurs de fonctionnalités et contrôler leurs états.

Prérequis

Ajouter un indicateur de fonctionnalité

Ajoutez un indicateur de fonctionnalité appelé Bêta au magasin App Configuration et laissez les valeurs par défaut à Étiquette et à Description. Pour plus d’informations sur l’ajout d’indicateurs de fonctionnalité à un magasin à l’aide du Portail Azure ou de CLI, accédez à Créer un indicateur de fonctionnalité.

Activer l’indicateur de fonctionnalité nommé Bêta

Créer une application de fonction

Créez une application Azure Functions à l’aide de Visual Studio en sélectionnant le modèle Azure Functions (C#). Ce modèle vous guide tout au long de la configuration des paramètres essentiels pour votre projet. Pour obtenir des instructions détaillées, consultez Développer Azure Functions à l’aide de Visual Studio.

Utilisez le tableau suivant comme référence pour les paramètres clés lors de la création de votre application de fonction.

Paramètre Valeur
Travailleur de fonctions .NET 8.0 isolé
Fonction Déclencheur HTTP
Niveau d’autorisation Anonyme

Remarque

Azure App Configuration peut être utilisé avec Azure Functions dans le modèle worker isolé ou dans le modèle in-process. Ce guide de démarrage rapide utilise le modèle de travailleur isolé à titre d'exemple. Vous trouverez des exemples de code complets pour les deux modèles dans le référentiel GitHub Azure App Configuration.

Se connecter à un magasin App Configuration

Vous pouvez vous connecter à votre magasin App Configuration en utilisant Microsoft Entra ID (recommandé) ou une chaîne de connexion.

  1. Cliquez avec le bouton droit sur votre projet, puis sélectionnez Gérer les packages NuGet. Sous l’onglet Parcourir, recherchez et ajoutez la dernière version stable des packages NuGet suivants à votre projet.

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Microsoft.FeatureManagement
    • Azure.Identity
  2. Ouvrez Program.cs et mettez à jour le code comme suit. Vous ajoutez Azure App Configuration en tant que source de configuration supplémentaire en appelant la AddAzureAppConfiguration méthode.

    Vous utilisez le DefaultAzureCredential pour vous authentifier auprès de votre magasin App Configuration. Suivez les instructions pour attribuer à vos informations d’identification le rôle de Lecteur de données de configuration d’application. Veillez à laisser suffisamment de temps pour que l’autorisation se propage avant d’exécuter votre application.

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    using Microsoft.FeatureManagement;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select.
               // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval.
               .UseFeatureFlags();
    });
    

    La UseFeatureFlags() méthode indique au fournisseur de charger des indicateurs de fonctionnalité. Par défaut, tous les indicateurs de fonctionnalité sans étiquettes sont chargés et actualisés toutes les 30 secondes. La sélection et le comportement d’actualisation des indicateurs de fonctionnalité sont configurés indépendamment d’autres valeurs de clé de configuration. Vous pouvez personnaliser ces comportements en passant une FeatureFlagOptions action à la UseFeatureFlags méthode. Permet FeatureFlagOptions.Select de spécifier les clés et les étiquettes des indicateurs de fonctionnalité à charger et d’utiliser FeatureFlagOptions.SetRefreshInterval pour remplacer l’intervalle d’actualisation par défaut.

    Conseil

    Si vous souhaitez limiter les configurations chargées dans votre application aux indicateurs de fonctionnalités, vous pouvez appeler options.Select("_") pour charger uniquement une clé factice "_" non existante. Par défaut, toutes les clés-valeurs de configuration sans étiquettes dans votre magasin de configuration d'application seront chargées si aucune méthode Select n'est appelée.

  3. Mettez à jour le fichier Program.cs pour activer l’actualisation automatique de l’indicateur de fonctionnalité sur chaque exécution de fonction en ajoutant l’intergiciel Azure App Configuration. Vous inscrivez également le service de gestion des fonctionnalités, ce qui vous permet d’injecter et de l’utiliser dans votre code de fonction ultérieurement.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware and feature management to the service collection.
    builder.Services
        .AddAzureAppConfiguration()
        .AddFeatureManagement();
    
    // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    
  4. Ouvrez Function1.cs, puis ajoutez l’espace de noms suivant.

    using Microsoft.FeatureManagement;
    

    Mettez à jour le constructeur pour obtenir une instance de IVariantFeatureManagerSnapshot par injection de dépendance.

    private readonly IVariantFeatureManagerSnapshot _featureManager;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger)
    {
        _featureManager = featureManager;
        _logger = logger;
    }
    
  5. Mettez à jour la Run méthode pour retourner un message de réponse en fonction de l’état de l’indicateur de fonctionnalité.

    [Function("Function1")]
    public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read feature flag
        string featureName = "Beta";
        bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted);
    
        return new OkObjectResult(featureEnabled
            ? $"The Feature Flag '{featureName}' is turned ON!"
            : $"The Feature Flag '{featureName}' is turned OFF");
    }
    

Tester la fonction en local

  1. Définissez la variable d’environnement.

    Définissez la variable d’environnement nommée AZURE_APPCONFIG_ENDPOINT sur le point de terminaison de votre magasin App Configuration qui se trouve sous la Vue d’ensemble de votre magasin dans le Portail Azure.

    Si vous utilisez l’invite de commandes Windows, exécutez la commande suivante et redémarrez l’invite pour que la modification soit prise en compte :

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    Si vous utilisez PowerShell, exécutez la commande suivante :

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Si vous utilisez macOS ou Linux, exécutez la commande suivante :

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Appuyez sur F5 pour tester votre fonction. Si vous y êtes invité, acceptez la requête dans Visual Studio pour télécharger et installer Azure Functions Core (CLI) Tools. Vous devrez peut-être aussi activer une exception de pare-feu afin de permettre aux outils de prendre en charge les requêtes HTTP.

  3. Copiez l’URL de votre fonction à partir de la sortie runtime Azure Functions.

    Démarrage rapide du débogage de fonctions dans Visual Studio

  4. Collez l’URL de la demande HTTP dans la barre d’adresses de votre navigateur. L’illustration suivante montre la réponse signalant que l’indicateur de fonctionnalité bêta est désactivé.

    Indicateur de la fonctionnalité Démarrage rapide désactivé

  5. Dans le portail Azure, accédez à votre magasin App Configuration. Sous Opérations, sélectionnez Gestionnaire de fonctionnalités, recherchez l’indicateur de fonctionnalité bêta et définissez le bouton bascule Activé sur Activé.

  6. Actualisez le navigateur à plusieurs reprises. Lorsque la fenêtre d’intervalle d’actualisation passe, la page change pour indiquer que l’indicateur de fonctionnalité Bêta est activé, comme indiqué dans l’image.

    Indicateur de la fonctionnalité Démarrage rapide activé

Nettoyer les ressources

Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.

Important

La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.

  1. Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
  2. Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
  3. Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
  4. Sélectionnez Supprimer le groupe de ressources.
  5. Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.

Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez créé un indicateur de fonctionnalité et l’avez utilisé avec une application Azure Functions.

Pour obtenir la liste complète des fonctionnalités de la bibliothèque de gestion des fonctionnalités .NET, passez au document suivant.

Pour en savoir plus sur la gestion des indicateurs de fonctionnalités dans Azure App Configuration, passez au tutoriel suivant.