[英]Override appsettings.json on Azure using ASPNETCORE_ENVIRONMENT
[英]AZURE_FUNCTIONS_ENVIRONMENT vs ASPNETCORE_ENVIRONMENT
在 azure 函數(v2、c#)中,有兩個環境變量可以潛在地用於標識當前環境的名稱。
AZURE_FUNCTIONS_ENVIRONMENT
ASPNETCORE_ENVIRONMENT
我打算使用AZURE_FUNCTIONS_ENVIRONMENT
,我想知道是否有理由選擇一個?
就兩者的行為而言,這是我發現的:
AZURE_FUNCTIONS_ENVIRONMENT
被函數主機/運行時設置為本地Development
。 它不會在 azure 中自動設置為Production
。 可以在 azure 中的應用設置中進行設置。ASPNETCORE_ENVIRONMENT
不是由本地或 Azure 中的函數主機/運行時設置的。幾周前我也提出了一個關於這個的github 問題,但沒有得到回應。 我希望我能在這里得到答案。
為了大家的利益,在此處添加來自 github 問題的官方答案:
您需要使用
AZURE_FUNCTIONS_ENVIRONMENT
。 在 Azure 上為 Function 應用提供支持的 Functions 運行時是此存儲庫中的 WebHost 項目。 在主機初始化時,它會查找AZURE_FUNCTIONS_ENVIRONMENT
應用設置(作為EnvironmentSettingNames.EnvironmentNameKey
) 並將其傳遞給 IWebHostBuilder 。 僅使用ASPNETCORE_ENVIRONMENT
可能會導致所需的行為更改和遙測丟失。
ASPNETCORE_ENVIRONMENT
是默認環境變量,用於確定IHostingEnvironment
的環境。 IHostingEnvironment
目前有兩個實現。 一個可以在這里找到,並且只能在內部使用。 另一個可以在這里找到。
我不知道為什么有AZURE_FUNCTIONS_ENVIRONMENT
的確切想法。 對於 ASP.NET Core 應用程序,我建議您堅持使用IHostingEnvironment
。 IHostingEnvironment
的版本將在未來替換為IWebHostEnvironment
。 隨着 3.0 的發布,他們將繼續支持兩者,直到將其刪除。 它將被標記為過時。
在您的函數中,您始終可以設置自定義變量並通過Environment.GetEnvironmentVariable("MY-VAR")
訪問它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.