Utilisez les étiquettes pour fournir des valeurs de configuration par environnement.
De nombreuses applications ont besoin de différentes configurations selon les environnements. Supposons qu’une application possède une valeur de configuration qui définit la chaîne de connexion à utiliser pour sa base de données principale. Les développeurs de l’application utilisent une autre base de données que celle utilisée en production. La chaîne de connexion de base de données utilisée par l’application doit changer lorsque l’application passe du développement à la production.
Dans Azure App Configuration, il est possible d’utiliser des étiquettes afin de définir des valeurs différentes pour la même clé. Par exemple, vous pouvez définir une clé unique avec des valeurs différentes pour le développement et la production, et spécifier la ou les étiquettes à charger lors de la connexion à App Configuration.
Pour illustrer cette fonctionnalité, vous allez modifier l’application web créée dans Démarrage rapide : Création d’une application ASP.NET Core avec Azure App Configuration en utilisant des paramètres de configuration différents pour le développement et la production. Suivez le guide de démarrage rapide avant de continuer.
Spécification d’une étiquette lors de l’ajout d’une valeur de configuration
Sur le Portail Azure, accédez à Explorateur de configuration et recherchez la clé TestApp:Settings:FontColor que vous avez créée dans le guide de démarrage rapide. Sélectionnez son menu contextuel, puis sélectionnez Ajouter une valeur.
Sur l’écran Ajouter une valeur, entrez Rouge comme Valeur et Développement comme Étiquette. Laissez Type de contenu vide. Sélectionnez Appliquer.
Charger les valeurs de configuration avec une étiquette spécifiée
Par défaut, Azure App Configuration charge uniquement les valeurs de configuration sans étiquette. Si vous avez défini des étiquettes pour vos valeurs de configuration, spécifiez les étiquettes à utiliser lors de la connexion à App Configuration.
Dans la section précédente, vous avez créé une valeur de configuration différente pour l’environnement de développement. Vous utilisez la variable HostingEnvironment.EnvironmentName
pour déterminer dynamiquement dans quel environnement d’exécution l’application s’exécute. Pour plus d’informations, consultez Utilisation de plusieurs environnements dans ASP.NET Core.
Ajoutez une référence à l’espace de noms Microsoft.Extensions.Configfiguration.AzureAppConfiguration pour accéder aux classes KeyFilter et LabelFilter.
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Chargez les valeurs de configuration avec l’étiquette correspondant à l’environnement actuel en passant le nom de l’environnement dans la méthode Select
:
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddAzureAppConfiguration(options =>
{
options.Connect(builder.Configuration.GetConnectionString("AppConfig"))
// Load configuration values with no label
.Select(KeyFilter.Any, LabelFilter.Null)
// Override with any configuration values specific to current hosting env
.Select(KeyFilter.Any, builder.Environment.EnvironmentName);
});
Important
L’extrait de code précédent utilise l’outil Secret Manager pour charger la chaîne de connexion d’App Configuration. Pour plus d’informations sur le stockage de la chaîne de connexion à l’aide de Secret Manager, consultez Démarrage rapide pour Azure App Configuration avec ASP.NET Core.
La méthode Select
est appelée deux fois. La première fois, elle charge les valeurs de configuration sans étiquette. Ensuite, elle les charge à nouveau avec l’étiquette correspondant à l’environnement actuel. Ces valeurs propres à l’environnement remplacent toutes les valeurs correspondantes sans étiquette. Il n’est pas nécessaire de définir des valeurs propres à l’environnement pour chacune des clés. Si une clé ne comporte pas de valeur dotée d’une étiquette correspondant à l’environnement actuel, elle utilise la valeur sans étiquette.
Test dans des environnements différents
Ouvrez le fichier launchSettings.json
qui se trouve dans le répertoire Properties
. Recherchez l’entrée config
sous profiles
. Dans la section environmentVariables
, définissez la variable ASPNETCORE_ENVIRONMENT
sur Production
.
Une fois les nouvelles valeurs définies, générez et exécutez votre application.
dotnet build
dotnet run
Utilisez un navigateur web pour accéder à http://localhost:5000
. Vous remarquerez que la police est de couleur noire.
Mettez à jour launchSettings.json
pour définir la variable ASPNETCORE_ENVIRONMENT
sur Development
. Exécutez de nouveau dotnet run
.
Vous remarquerez que la police est maintenant de couleur rouge. En effet, l’application utilise désormais la valeur de TestApp:Settings:FontColor
comportant l’étiquette Development
. Toutes les autres valeurs de configuration restent les mêmes que leurs valeurs de production.