AZURE_FUNCTIONS_ENVIRONMENT против ASPNETCORE_ENVIRONMENT - PullRequest
0 голосов
/ 06 июня 2019

В функциях Azure (v2, c #) есть две переменные среды, которые потенциально могут использоваться для идентификации имени текущей среды.

  • AZURE_FUNCTIONS_ENVIRONMENT
  • ASPNETCORE_ENVIRONMENT

Я планирую использовать AZURE_FUNCTIONS_ENVIRONMENT, и мне интересно, есть ли причины выбирать одно из другого?

Что касается поведения двух, это то, что я обнаружил:

  • AZURE_FUNCTIONS_ENVIRONMENT локально устанавливается на Development с помощью функций host / runtime. Он не автоматически устанавливается на лазурное значение Production. Это можно установить в настройках приложения в Azure.
  • ASPNETCORE_ENVIRONMENT не устанавливается функциями host / runtime ни локально, ни в Azure.

Я также поднял проблему github об этом пару недель назад, но не получил ответа. Я надеюсь, что смогу получить ответ здесь.

1 Ответ

1 голос
/ 07 июня 2019

ASPNETCORE_ENVIRONMENT - переменная среды по умолчанию, определяющая среду для IHostingEnvironment. IHostingEnvironment имеет две текущие реализации. Здесь можно найти здесь и предполагается, что он используется только для внутреннего использования. Другой может быть найден здесь .

Точную идею о том, почему существует AZURE_FUNCTIONS_ENVIRONMENT Я не могу сказать. Я бы предложил вам придерживаться IHostingEnvironment для приложений ASP.NET Core. Версия IHostingEnvironment будет заменена на IWebHostEnvironment в будущем. С выпуском 3.0 они продолжат поддерживать оба, пока не удалят его. Он будет помечен как устаревший.

В ваших функциях вы всегда можете установить пользовательские переменные и просто получить к ним доступ через Environment.GetEnvironmentVariable("MY-VAR").

...