Elastic Beanstalkからasp.netコアmvcアプリケーションに環境変数を取得するにはどうすればよいですか?以下のapp.configファイルを含む.ebextensionsフォルダーを追加しました。
option_settings:
- option_name: HelloWorld
value: placeholder
- option_name: ASPNETCORE_ENVIRONMENT
value: placeholder
.ebextensionsフォルダーは、公開パッケージに含まれています。
デプロイ時に、両方の変数がaws elasticbeanstalkコンソールの[構成]> [ソフトウェア構成]> [環境変数]に表示されます。
しかし、アプリケーションで変数を読み取ろうとすると、以下のオプションがどれも機能しません。
Environment.GetEnvironmentVariable("HelloWorld") // In controller
Configuration["HelloWorld"] // In startup.cs
私が見逃している可能性があることについてのアイデアはありますか?ありがとう。
同じ問題があり、この問題についてAWSサポートから返信が届きました。どうやら環境変数がElastic BeanstalkのASP.NET Coreアプリケーションに適切に注入されていません。
私の知る限り、彼らは問題を解決するために働いています。
回避策はC:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration
、構成ビルダーを解析することです。このファイルはElastic Beanstalk環境の一部であり、プロジェクトのデプロイ時にアクセスできる必要があります。
最初にファイルを追加します。
var builder = new ConfigurationBuilder()
.SetBasePath("C:\\Program Files\\Amazon\\ElasticBeanstalk\\config")
.AddJsonFile("containerconfiguration", optional: true, reloadOnChange: true);
次に、値にアクセスします。
var env = Configuration.GetSection("iis:env").GetChildren();
foreach (var envKeyValue in env)
{
var splitKeyValue = envKeyValue.Value.Split('=');
var envKey = splitKeyValue[0];
var envValue = splitKeyValue[1];
if (envKey == "HelloWorld")
{
// use envValue here
}
}
アマゾンウェブサービスのGP提供
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加