.net Core Override Appsettings.json With Environment Variables

5 min read Jun 03, 2024
.net Core Override Appsettings.json With Environment Variables

Surcharger appsettings.json avec des variables d'environnement dans .NET Core

Dans le développement d'applications .NET Core, la configuration joue un rôle crucial. Le fichier appsettings.json est le principal fichier de configuration, mais il est souvent nécessaire de surcharger certains paramètres en fonction de l'environnement d'exécution. Les variables d'environnement offrent une solution flexible et pratique pour y parvenir.

Pourquoi surcharger appsettings.json ?

Surcharger appsettings.json avec des variables d'environnement est important pour plusieurs raisons:

  • Sécurité: Stocker des informations sensibles, comme des clés API ou des mots de passe, directement dans appsettings.json peut poser un risque de sécurité. Les variables d'environnement, quant à elles, ne sont pas stockées dans le code source et sont donc plus sécurisées.
  • Flexibilité: Les variables d'environnement permettent de modifier facilement la configuration d'une application sans avoir à modifier le code source. Cela est particulièrement utile lors du déploiement de l'application dans différents environnements (développement, test, production).
  • Amélioration de la portabilité: En utilisant des variables d'environnement, vous pouvez facilement adapter votre application à différents environnements sans avoir à modifier le code source.

Comment surcharger appsettings.json avec des variables d'environnement ?

.NET Core offre des mécanismes simples pour surcharger appsettings.json avec des variables d'environnement. Voici une approche courante:

  1. Définition des variables d'environnement: Définissez les variables d'environnement avec les clés correspondantes aux noms de configuration que vous souhaitez surcharger. Par exemple:

    export MyConnectionString="Server=my-server;Database=my-database;User ID=my-user;Password=my-password"
    
  2. Utilisation de ConfigurationBuilder: Dans votre application .NET Core, utilisez ConfigurationBuilder pour charger les configurations à partir de différentes sources, y compris les variables d'environnement.

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostContext, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
                config.AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true);
                config.AddEnvironmentVariables(); // Charge les variables d'environnement
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup();
            });
    
  3. Accès aux valeurs de configuration: Utilisez IConfiguration pour accéder aux valeurs de configuration surchargées par les variables d'environnement.

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
    
        public IConfiguration Configuration { get; }
    
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            // ...
    
            string connectionString = Configuration.GetConnectionString("MyConnectionString"); // Obtient la valeur de la variable d'environnement
        }
    }
    

Avantages de l'utilisation des variables d'environnement

L'utilisation de variables d'environnement pour surcharger appsettings.json offre plusieurs avantages:

  • Sécurité améliorée: Les informations sensibles sont stockées en dehors du code source.
  • Flexibilité accrue: Facilite la modification de la configuration sans modifier le code.
  • Portabilité optimale: Permet d'adapter l'application à différents environnements facilement.
  • Amélioration de la collaboration: Facilite le partage de la configuration entre les membres de l'équipe.

En conclusion, surcharger appsettings.json avec des variables d'environnement est une pratique courante et recommandée dans le développement d'applications .NET Core. Cela permet d'améliorer la sécurité, la flexibilité et la portabilité de votre application.

Featured Posts