2015-11-01 20 views
9

は私が私のAWS Elastic Beanstalkでアプリケーションから環境プロパティを読み取ることができますどのようにここで見つける:.netのElastic Beanstalk環境プロパティを読み取るには?

ConfigurationManager.AppSettings["MyServiceUrl"] 
ConfigurationManager.AppSettings["aws:elasticbeanstalk:application:environment.MyServiceUrl"] 
Environment.GetEnvironmentVariable("MyServiceUrl") 
Environment.GetEnvironmentVariable("aws:elasticbeanstalk:application:environment.MyServiceUrl") 

'完全修飾' 名:

Configuration > Software Configuration > Environment Properties 
次の

enter image description here

なしの仕事に近づいていません試行はAWS EB documentationから行われます。

アイデア?あなたの.ebextensions/myoptions.configファイルで

答えて

14

option_settings: 
    - option_name: MyServiceUrl 
    value: change me 

(すでに見ているよう)これはあなたのEB環境プロパティセクションの「MyServiceUrl」オプションを追加します。あなたのEC2インスタンスにRDP場合は、あなたがこれを参照してくださいよ

<appSettings> 
    <add key="MyServiceUrl" value="change me" /> 
</appSettings> 

:導入した場合、これはあなたのWeb.Configファイルに以下を追加します。

EBコンソールを使用してプロパティを変更すると、Web.Configファイルで設定が変更されます。

ですから、標準AppSettings方法使用してこのプロパティにアクセスする:あなたがそうEBを置き換えるものではありません、あなたのWeb.Configファイルは、この設定が含まれていないことを確認する必要があり

キャッチそれ。 Visual Studioデプロイメントパッケージにこの設定が含まれている場合、EBはそれを置き換えず、コードでプロパティにアクセスすると常にデプロイされた値を受け取ります。

ソリューション:これは、Visual Studioの展開中Web.Configから設定を削除し、EBにできるようになります

<appSettings> 
    <add key="MyServiceUrl" xdt:Transform="Remove" xdt:Locator="Match(key)" /> 
</appSettings> 

:あなたは

Web.Release.configファイルは、設定は、Visual Studioの展開時に削除されましたEBデプロイメント中にファイルに値を追加します。

+0

、豆の木は、「環境変数」、それらを呼び出しますが、.NETの彼らは実際http://docs.aws.amazon.com/elasticbeanstalk/の下あたりとして、代わりにweb.configファイルに挿入されていますlatest/dg/create_deploy_NET.container.console.html – bitcoder

+0

これに加えて:AWSにバグがあり、キーがコメントアウトされていても設定ファイルが更新されないようです。ファイルを解析するのではなく、文字列レベルの比較を行い、キーがweb.configに存在するかどうかを確認するように見えます。 – Marek

+0

この動作がElastic Beanstalkで変更されたようです。このドキュメントでは、「AWS Management Consoleに適用された設定は、設定ファイル内の同じ設定を上書きします。これにより、設定ファイルにデフォルト設定を適用し、コンソールで環境固有の設定で上書きすることができます。 –

0

この動作がElastic Beanstalkで変更されたようです。ドキュメントは今、彼らが存在する場合は、AWS Management Consoleの中で適用さ

設定は、コンフィギュレーション・ファイルに同じ 設定を上書き言います。これにより、構成ファイルに のデフォルト設定があり、コンソールに環境固有の設定である の設定を上書きすることができます。

だから、今、あなたのweb.configファイルにし、Elastic Beanstalkでの設定で同じ設定名を使用することができ、およびElastic Beanstalkでの値は、あなたのweb.configファイル内の任意のを上書きします。 EBは単に新しいエントリをWebに追加するように見えます。configファイルであるため、両方の場所に定義されている値には2つのエントリがあります。 EBで追加されたエントリは後でファイルに格納されるため、優先されます。マットの答えを1として

関連する問題