Могу ли я определить IsDevelopment из IWebJobsBuilder - PullRequest
1 голос
/ 29 мая 2020

В значительной степени проблема XY, но меня тоже интересует основной ответ. См. Внизу контекст XY.


Я нахожусь в проекте приложения. NET Core 3 AzureFunctions (v3). Этот код делает мой вопрос довольно ясным, я думаю:
namespace MyProj.Functions
{
    internal class CustomStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            var isDevelopment = true; //Can I correctly populate this, such that it's true only for local Dev?
            if(isDevelopment)
            {
                // Do stuff I wouldn't want to do in Prod, or on CI...
            }
        }
    }
}


XY Контекст:

Я установил вверх Swagger / Swashbuckle для моей функции, и в идеале я хочу, чтобы он автоматически открывал страницу swagger, когда я запускаю функцию локально.

В проекте API это тривиально сделать в Свойства проекта, но csproj функций не имеет возможности запускать веб-страницу onDebug; вся страница свойств проекта неактивна.

Выше приведен контекст, в котором я вызываю builder.AddSwashBuckle(Assembly.GetExecutingAssembly());, и я добавил вызов Diagnostics.Process, чтобы запустить веб-страницу во время запуска. У меня это отлично работает. Сейчас у меня это за флагом [Conditional("DEBUG")], но я бы хотел, чтобы он был более ограниченным, если это возможно. Определенно открыт для других решений, но я не смог найти так ...

1 Ответ

0 голосов
/ 29 мая 2020

Хотя я не совсем уверен, что это возможно в функциях azure, я думаю, что установка параметра приложения ASPNETCORE_ENVIRONMENT, как описано в https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings, позволит вам узнать, настроена ли среда как производственная. или разработка путем внедрения зависимости IHostEnvironment и проверки

.IsDevelopment()

на внедренной зависимости.

...