How do I get environment variables from elastic beanstalk into an asp.net core mvc application? I have added a .ebextensions folder with app.config file in it with the following:
option_settings: - option_name: HelloWorld   value: placeholder  - option_name: ASPNETCORE_ENVIRONMENT   value: placeholder   The .ebextensions folder is included in the publish package.
On deployment, both the variables are visible in the aws elasticbeanstalk console at Configuration > Software Configuration > Environment Variables
However, when I try to read the variables in the application, none of the below options are working:
Environment.GetEnvironmentVariable("HelloWorld") // In controller Configuration["HelloWorld"] // In startup.cs   Any ideas on what I could be missing? Thanks.
Environment properties are written to the /opt/python/current/env file, which is sourced into the virtualenv stack where the application runs. For more information, see Using the Elastic Beanstalk Python platform.
I just implemented a slightly other solution which injects the beanstalk environment variables to the program so that you may access them by Environment.GetEnvironmentVariable():
private static void SetEbConfig() {     var tempConfigBuilder = new ConfigurationBuilder();      tempConfigBuilder.AddJsonFile(         @"C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration",         optional: true,         reloadOnChange: true     );      var configuration = tempConfigBuilder.Build();      var ebEnv =         configuration.GetSection("iis:env")             .GetChildren()             .Select(pair => pair.Value.Split(new[] { '=' }, 2))             .ToDictionary(keypair => keypair[0], keypair => keypair[1]);      foreach (var keyVal in ebEnv)     {         Environment.SetEnvironmentVariable(keyVal.Key, keyVal.Value);     } }   Simply call SetEbConfig(); before building your webhost. With this solution, also AWS SDK does read it's settings like AWS_ACCESS_KEY_ID correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With