在azure函数(v2、c#)中,有两个环境变量可能用于标识当前环境的名称。
AZURE_FUNCTIONS_ENVIRONMENTASPNETCORE_ENVIRONMENT我计划使用AZURE_FUNCTIONS_ENVIRONMENT,我想知道是否有理由选择一个而不是另一个?
就这两个人的行为而言,我发现:
AZURE_FUNCTIONS_ENVIRONMENT由宿主/运行时函数在本地设置为Development。它不会自动设置为Production。我们可以在中设置这一点。ASPNETCORE_ENVIRONMENT不在本地或Azure中由宿主/运行时函数设置。几周前,我也曾就此事提出过一个github问题,但没有得到任何回应。我希望我能在这里得到一个答案。
发布于 2019-08-30 00:18:01
为了每个人的利益,在这里添加github问题的正式答复:
您会想要使用
AZURE_FUNCTIONS_ENVIRONMENT。在Azure上驱动函数应用程序的函数运行库是这个回购中的WebHost项目。当主机正在初始化时,它会查找AZURE_FUNCTIONS_ENVIRONMENT应用程序设置(作为EnvironmentSettingNames.EnvironmentNameKey)和将其传递给IWebHostBuilder。只使用ASPNETCORE_ENVIRONMENT会导致期望的行为改变和遥测丢失。
发布于 2019-06-07 11:25:59
ASPNETCORE_ENVIRONMENT是用于确定IHostingEnvironment环境的默认环境变量。IHostingEnvironment有两个当前的实现。可以找到一个这里,并且应该只在内部使用。另一个可以找到这里。
我不知道为什么会有AZURE_FUNCTIONS_ENVIRONMENT的确切原因。我建议您坚持使用IHostingEnvironment进行ASP.NET核心应用程序。IHostingEnvironment的版本将来将被IWebHostEnvironment所取代。随着3.0的发布,他们将继续支持两者,直到删除它。它将被标记为过时。
在您的函数中,您可以始终设置自定义变量并通过Environment.GetEnvironmentVariable("MY-VAR")访问它们。
https://stackoverflow.com/questions/56484241
复制相似问题