Tutoriel : Utiliser la configuration dynamique dans une application .NET Framework
Les données d’App Configuration peuvent être chargées en tant que paramètres de l’application dans une application .NET Framework. Pour plus d’informations, consultez le guide de démarrage rapide. Toutefois, comme conçu par le .NET Framework, les paramètres de l’application ne peuvent être actualisés que lors du redémarrage de l’application. Le fournisseur .NET d’App Configuration est une bibliothèque .NET Standard. Il prend en charge la mise en cache et l’actualisation dynamiques de la configuration sans redémarrage de l’application. Ce tutoriel montre comment vous pouvez implémenter des mises à jour de configuration dynamiques dans une application console .NET Framework.
Dans ce tutoriel, vous allez apprendre à :
- Configurer votre application .NET Framework pour mettre à jour sa configuration en réponse aux changements survenant dans un magasin App Configuration.
- Injecter la configuration la plus récente dans votre application.
Prérequis
- Compte Azure avec un abonnement actif. Créez-en un gratuitement.
- Un magasin App Configuration. Créez un magasin.
- Visual Studio
- .NET Framework 4.7.2 ou version ultérieure
Ajouter une clé-valeur
Ajoutez la clé-valeur suivante au magasin App Configuration et laissez les valeurs par défaut pour Étiquette et Type de contenu. Pour plus d’informations sur l’ajout de clés-valeurs à un magasin avec le Portail Azure ou la CLI, consultez Créer une clé-valeur.
Clé | Valeur |
---|---|
TestApp:Settings:Message | Data from Azure App Configuration |
Créer une application console .NET Framework
Démarrez Visual Studio et sélectionnez Créer un projet.
Dans Créer un projet, filtrez sur le type de projet Console et sélectionnez Application console (.NET Framework) avec C# dans la liste de modèles de projet. Appuyez sur Suivant.
Dans Configurer votre nouveau projet , entrez un nom de projet. Sous Framework, sélectionnez .NET Framework 4.7.2 ou une version ultérieure. Appuyez sur Créer.
Recharger des données à partir d’Azure App Configuration
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 du package NuGet suivant à votre projet.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Ouvrez Program.cs et ajoutez les espaces de noms suivants.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Ajoutez deux variables pour stocker les objets liés à la configuration.
private static IConfiguration _configuration; private static IConfigurationRefresher _refresher;
Mettez à jour la méthode
Main
pour vous connecter à App Configuration avec les options d’actualisation spécifiées.static void Main(string[] args) { var builder = new ConfigurationBuilder(); builder.AddAzureAppConfiguration(options => { options.Connect(Environment.GetEnvironmentVariable("ConnectionString")) // Load all keys that start with `TestApp:`. .Select("TestApp:*") // Configure to reload the key 'TestApp:Settings:Message' if it is modified. .ConfigureRefresh(refresh => { refresh.Register("TestApp:Settings:Message") .SetCacheExpiration(TimeSpan.FromSeconds(10)); }); _refresher = options.GetRefresher(); }); _configuration = builder.Build(); PrintMessage().Wait(); }
Dans la méthode
ConfigureRefresh
, une clé de votre magasin App Configuration est inscrite pour la supervision des changements. La méthodeRegister
a un paramètre booléen facultatifrefreshAll
qui permet d’indiquer si toutes les valeurs de configuration doivent être actualisées en cas de changement de la clé inscrite. Dans cet exemple, seule la clé TestApp:Settings:Message est actualisée. La méthodeSetCacheExpiration
spécifie le temps minimum qui doit s'écouler avant qu'une nouvelle requête puisse être adressée à App Configuration pour rechercher les changements de configuration. Dans cet exemple, vous remplacez le délai d’expiration par défaut de 30 secondes par un délai de 10 secondes à des fins de démonstration.Ajoutez une méthode appelée
PrintMessage()
qui déclenche une actualisation des données de configuration à partir d’App Configuration.private static async Task PrintMessage() { Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!"); // Wait for the user to press Enter Console.ReadLine(); await _refresher.TryRefreshAsync(); Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!"); }
L’appel de la méthode
ConfigureRefresh
seule n’entraîne pas l’actualisation automatique de la configuration. Vous appelez la méthodeTryRefreshAsync
à partir de l’interfaceIConfigurationRefresher
pour déclencher une actualisation. Cette conception consiste à éviter les demandes envoyées à App Configuration même lorsque votre application est inactive. Vous pouvez inclure l’appel deTryRefreshAsync
quand vous considérez que votre application est active. Par exemple, cela peut se produire quand vous traitez un message entrant, une commande ou l’itération d’une tâche complexe. Il peut également s’agir d’un minuteur si votre application est active en permanence. Dans cet exemple, vous appelezTryRefreshAsync
quand vous appuyez sur la touche Entrée. Notez que, même en cas d’échec de l’appel deTryRefreshAsync
pour une raison quelconque, votre application continue à utiliser la configuration mise en cache. Une autre tentative a lieu quand le délai d’expiration configuré pour le cache est écoulé et que l’appel deTryRefreshAsync
est à nouveau déclenché par l’activité de votre application. L’appel deTryRefreshAsync
est une non-opération avant l’expiration du délai configuré pour le cache. Son impact sur les performances est donc minimal, même si l’appel est effectué fréquemment.
Générer et exécuter l’application localement
Définissez une variable d’environnement nommée ConnectionString sur la chaîne de connexion de la clé en lecture seule obtenue lors de la création du magasin App Configuration.
Si vous utilisez l’invite de commandes Windows, exécutez la commande suivante :
setx ConnectionString "<connection-string-of-your-app-configuration-store>"
Si vous utilisez Windows PowerShell, exécutez la commande suivante :
$Env:ConnectionString = "<connection-string-of-your-app-configuration-store>"
Redémarrez Visual Studio pour que la modification soit prise en compte.
Appuyez sur Ctrl + F5 pour générer et exécuter l’application console.
Dans le portail Azure, accédez à l’Explorateur de configurations de votre magasin App Configuration, puis mettez à jour la valeur de la clé suivante.
Clé Valeur TestApp:Settings:Message Données issues d’Azure App Configuration - Mise à jour De retour dans l’application en cours d’exécution, appuyez sur la touche Entrée pour déclencher une actualisation et afficher la valeur mise à jour dans l’invite de commandes ou dans la fenêtre PowerShell.
Notes
Étant donné que le délai d’expiration du cache a été défini sur 10 secondes à l’aide de la méthode
SetCacheExpiration
lors de la spécification de la configuration de l’opération d’actualisation, la valeur du paramètre de configuration ne sera actualisée que si 10 secondes se sont écoulées depuis la dernière actualisation de ce paramètre.
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.
- Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- 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 tutoriel, vous avez permis à votre application .NET Framework d’actualiser dynamiquement les paramètres de configuration à partir d’App Configuration. Pour savoir comment activer la configuration dynamique dans une application web ASP.NET (.NET Framework), passez au tutoriel suivant :
Pour savoir comment utiliser une identité managée Azure de façon à simplifier l’accès à App Configuration, passez au tutoriel suivant :