Функция .NET 5.0 v3 - невозможно переопределить уровень авторизации при запуске тестов в Docker
Я поднял проблему здесь https://github.com/Azure/azure-functions-dotnet-worker/issues/722, но похоже, что это не привлекло никого внимания, поэтому я пытаюсь здесь.
Мы перенесли наши функции с core3.1 на 5.0, и у нас возникла проблема с запуском тестов в Docker (запуск их локально или конвейер CI / CD), в то время как функции размещены в приложении функций Azure (Linux) для производства, и все в порядке.
Объявление функции:
[Function("workingAt")] public async Task<HttpResponseData> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestData req, FunctionContext executionContext)
Уровень авторизации установлен на Function, и над ним у нас есть APIM, который заботится.
Проблема в том, что когда мы запускаем наши тесты на докере, все вызовы приводят к 401, и трюк, который работал для версии core3.1, больше не действует.
Ранее мы использовали это, чтобы переопределить настройки в
function.json
файл в
Dockerfile
:
RUN find . -type f -name "function.json" -exec sed -i 's/"authLevel": "function"/"authLevel": "anonymous"/g' {} +
Уже пробовал с этим
functions.metadata
файл и здесь не повезло.
Мы могли бы использовать директивы препроцессора вместо аргумента уровня авторизации, но это создает (маловероятно) ненужный риск того, что кто-то по ошибке развернет функцию в Azure с анонимным уровнем авторизации.
Есть ли другой способ добиться этого?
Ваше здоровье