Asp.net

如何在 .net 中閱讀 Elastic Beanstalk 環境屬性?

  • January 14, 2019

如何從此處找到的 AWS Elastic Beanstalk 應用程序中讀取環境屬性:

Configuration > Software Configuration > Environment Properties

在此處輸入圖像描述

以下方法均無效:

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

“完全限定”名稱嘗試來自AWS EB 文件

有任何想法嗎?

在您的.ebextensions/myoptions.config文件中:

option_settings:
 - option_name: MyServiceUrl
   value: change me

這將在您的 EB 環境屬性部分添加“MyServiceUrl”選項(如您所見)。部署後,這會將以下內容添加到您的Web.Config文件中:

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

如果您 RDP 進入您的 EC2 實例,您將看到這一點。

當您使用 EB 控制台更改屬性時,將在您的Web.Config文件中修改該設置。

AppSettings因此,您可以使用標準方法訪問此屬性:

string value = ConfigurationManager.AppSettings["MyServiceUrl"];

漁獲:

您需要確保您的Web.Config文件不包含此設置,否則 EB 不會替換它。如果您的 Visual Studio 部署包包含此設置,則 EB 不會替換它,並且當您通過程式碼訪問該屬性時,您將始終收到已部署的值。

解決方案:

在您Web.Release.config的文件中,在 Visual Studio 部署期間刪除設置:

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

這將從Web.ConfigVisual Studio 部署期間刪除設置,並允許 EB 在 EB 部署期間將值添加到文件中。

引用自:https://stackoverflow.com/questions/33463161