使用azure devops管道将控制台webjob应用程序部署到包含webapi的azure App服务

时间:2019-06-03 20:26:51

标签: azure .net-core azure-devops azure-pipelines

我有2个用.net core 2.2编写的webAPI。这2个Web api是由.netcore 2.2中的控制台应用程序web作业触发的。它们都是不同的项目,并且位于Azure DevOps的不同存储库中。

我正在尝试使用Azure DevOps构建和发布管道在Azure中将Web Api和webjob一起部署到2个Web应用程序服务中(例如:WebApi1 + Web作业1到App Service1中,将WebApi2 + Web Job2的Web应用程序部署到App Service2中)。

我能够将Webjobs从Azure门户手动添加到App Service中,并且工作正常。但是我想使用Azure DevOps管道进行部署。

我尝试了不同的方法来通过应用程序服务中的Web api发布Web作业(控制台应用程序),例如尝试将其从Azure DevOps发布到App_Data文件夹。

我主要关注下面的博客。

https://www.andrewhoefling.com/Blog/Post/deploying-dotnet-core-webjobs-to-azure-using-azure-pipelines

但是当我尝试发布webjob时,它会覆盖Web api代码(所有4个项目都有单独的构建/发布管道)。 Webjob代码将部署在site / wwwroot文件夹而不是site / job文件夹中。

enter image description here

我的构建步骤:

enter image description here enter image description here

我的发布步骤:

enter image description here

我不确定自己在做什么错。 有没有一种方法可以将webjobs文件复制到相同的应用程序服务中而不会覆盖实际的webapi代码?

2 个答案:

答案 0 :(得分:2)

我有一段时间在github repo azure-webjobs-sdk上问了这个问题,但是答案也对我没有帮助...

我尝试了以下方法,对我来说很有效:

  1. 在Azure门户中,导航至:应用程序服务> 配置> 路径映射> 虚拟应用程序和目录 < / li>

enter image description here

  1. 在DevOps中配置构建管道,如下所示: enter image description here

  2. 配置发布管道,如下所示: enter image description here

配置任务:

enter image description here

答案 1 :(得分:0)

我通过依次执行以下步骤使它正常工作-

  1. 使用App Service Deploy任务部署Webjob,该任务具有以下部署方法设置-

enter image description here

  1. 使用具有以下设置的App Service Deploy任务来部署API-

enter image description here

这两个步骤之后,API和webjob在同一应用程序服务中无缝运行。