繁体   English   中英

AZURE_FUNCTIONS_ENVIRONMENT 与 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM