![](/img/trans.png)
[英]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.