Я бы рекомендовал использовать Azure DevOps (ранее VSTS) для развертывания в Azure, вы используете YAML для определения конвейера сборки, который может публиковать артефакт из каждого из ваших функциональных приложений.Затем артефакты обнаруживаются конвейером выпуска и могут быть развернуты в Azure.
Основными строительными блоками этого являются, во-первых, некоторые YAML, подобные этому в вашем конвейере сборки для каждого проекта:
...
steps:
# a script task that let's you use any CLI available on the DevOps build agent, also uses a variable for the build config
- script: dotnet build MyFirstProjectWithinSolution\MyFirstProject.csproj --configuration $(buildConfiguration)
displayName: 'dotnet build MyFirstProject'
# other steps removed, e.g. run and publish tests
- script: dotnet publish MyFirstProjectWithinSolution\MyFirstProject.csproj --configuration $(buildConfiguration) --output MyFirstArtifact
displayName: 'dotnet publish MyFirstProject'
# a DevOps named task called CopyFiles (which is version 2 = @2), DevOps supplies lots of standard tasks you can make use of
- task: CopyFiles@2
inputs:
contents: 'MyFirstProjectWithinSolution\MyFirstArtifact\**'
targetFolder: '$(Build.ArtifactStagingDirectory)'
# now publish the artifact which makes it available to the release pipeline, doing so into a sub folder allows multiple artifacts to be dealt with
- task: PublishBuildArtifacts@1
displayName: 'publish MyFirstArtifact artifact'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)\MyFirstProjectWithinSolution\MyFirstArtifact'
artifactName: MyFirstArtifact
# now repeat the above for every project you need to deploy, each in their own artifact sub-folder
Затем вы создаете выпуск, который в своей простейшей форме выбирает артефакты и выполняет одно или несколько развертываний, вот простой, который развертывает два проекта функциональных приложений:
На этапе развертывания (справа вверху) вы можете определить процесс выпуска, опять же в его простейшей форме вы можете просто развернуть прямо в производство или в слот, хотя до слотов функций не выходят из предварительного просмотраВы также можете запустить другое приложение-функцию, развернуть и протестировать там.
На этом снимке экрана показано простое развертывание, в котором используется стандартное развертывание приложения-функции Azure из DevOps Azure:
На этапе развертывания вы можете определить, какой артефакт будет развернут и после запуска сборки сборки.Впервые на peline вы увидите все доступные артефакты, которые он создал.
Все или часть вышеперечисленного можно автоматизировать, нажав ветку (или другие триггеры, например, по расписанию).Уведомления и «шлюзы» также могут быть добавлены, если вы хотите вмешательство вручную перед выпуском или между этапами выпуска.
Есть и другие способы сократить это, например, с несколькими конвейерами сборки, это в основном полностью гибко, новыше перечислены элементы, которые вы можете использовать для одновременного развертывания одного или нескольких приложений функций.