Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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, comme illustré dans le tutoriel pour la création d’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 | Données provenant de 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
- Azure.Identity
Ouvrez Program.cs et ajoutez les espaces de noms suivants.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration; using Azure.Identity;Ajoutez deux variables pour stocker les objets liés à la configuration.
private static IConfiguration _configuration; private static IConfigurationRefresher _refresher;Mettez à jour la méthode
Mainpour vous connecter à App Configuration avec les options d’actualisation spécifiées. Connectez-vous à App Configuration à l’aide de l’ID Microsoft Entra (recommandé) ou d’une chaîne de connexion.Vous utilisez le
DefaultAzureCredentialpour vous authentifier auprès de votre magasin App Configuration. Suivez les instructions pour attribuer vos informations d’identification au rôle Lecteur de données App Configuration. Veillez à laisser suffisamment de temps pour que l’autorisation se propage avant d’exécuter votre application.// Existing code in Program.cs // ... ... static void Main(string[] args) { var builder = new ConfigurationBuilder(); builder.AddAzureAppConfiguration(options => { string endpoint = Environment.GetEnvironmentVariable("Endpoint"); options.Connect(new Uri(endpoint), new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*") // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refresh => { refresh.RegisterAll() .SetRefreshInterval(TimeSpan.FromSeconds(10)); }); _refresher = options.GetRefresher(); }); _configuration = builder.Build(); PrintMessage().Wait(); } // The rest of existing code in Program.cs // ... ...Dans la
ConfigureRefreshméthode, vous appelez laRegisterAllméthode pour indiquer au fournisseur App Configuration de recharger l’intégralité de la configuration chaque fois qu’elle détecte une modification dans l’une des valeurs clés sélectionnées (celles commençant par TestApp : et sans étiquette). Pour plus d’informations sur la surveillance des modifications de configuration, consultez les meilleures pratiques pour l’actualisation de la configuration.La méthode
SetRefreshIntervalspé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
ConfigureRefreshseule n’entraîne pas l’actualisation automatique de la configuration. Vous appelez la méthodeTryRefreshAsyncà partir de l’interfaceIConfigurationRefresherpour 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 deTryRefreshAsyncquand 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 appelezTryRefreshAsyncquand vous appuyez sur la touche Entrée. Notez que, même en cas d’échec de l’appel deTryRefreshAsyncpour une raison quelconque, votre application continue à utiliser la configuration mise en cache. Une autre tentative est effectuée lorsque l’intervalle d’actualisation configuré est passé et que l’appelTryRefreshAsyncest déclenché à nouveau par l’activité de votre application. L’appel deTryRefreshAsyncest une opération sans opération avant l’expiration de l’intervalle d’actualisation configuré, de sorte que son impact sur les performances est minimal, même s’il est appelé fréquemment.
Générer et exécuter l’application localement
Définissez une variable d’environnement.
Définissez une variable d’environnement nommée
Endpointsur le point de terminaison de votre magasin App Configuration trouvé 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 Endpoint "<endpoint-of-your-app-configuration-store>"Si vous utilisez PowerShell, exécutez la commande suivante :
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"Si vous utilisez macOS ou Linux, exécutez la commande suivante :
export Endpoint='<endpoint-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.
Remarque
Étant donné que l’intervalle d’actualisation a été défini sur 10 secondes à l’aide de la
SetRefreshIntervalméthode lors de la spécification de la configuration de l’opération d’actualisation, la valeur du paramètre de configuration est mise à jour uniquement si au moins 10 secondes se sont écoulées depuis la dernière actualisation pour 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 :