Мне нужно провести рефакторинг a. Net Веб-API, я рассматриваю возможность перехода на серверную версию и пытаюсь понять, как лучше всего перенести код на Azure Функции.
Насколько я понимаю, правильный подход к сокращению затрат и времени холодного запуска состоит в разделении API: гораздо лучше иметь много небольших веб-API, чем один со всеми методами. Малые API-интерфейсы потребляют меньше памяти и ускоряют холодный запуск.
Наличие большего количества функций в одном и том же проекте не решает проблему, так как все они будут развернуты в одном и том же приложении функций, поэтому один dll, высокая память, медленный холодный запуск. Поэтому я должен создать несколько Azure проектов функций и развернуть каждый из них в отдельном приложении функций.
Если все вышеперечисленное верно, мы наконец-то добрались до проблемы: я бы структурировал код и репозиторий так, чтобы у меня было одно Решение, содержащее несколько Azure Функциональных проектов. Как я могу иметь CI / CD (Azure DevOps), чтобы при установке sh репозитория были развернуты ТОЛЬКО функциональные проекты Azure, обновленные / измененные / новые? Мне нужно развернуть только измененные Azure Проекты функций, чтобы не потерять все приложения функций (в том числе те, чей код не изменился).
Это менее важно, но мне также нужно иметь один URL для всех API, поэтому https://myapi.azurewebsites.net/api/Function1, https://myapi.azurewebsites.net/api/Function2, и т. д. c, а не https://myapi1.azurewebsites.net/api/Function1, https://myapi2.azurewebsites.net/api/Function1, et c. Возможно ли это с помощью вышеуказанной структуры?