如何通过VSTS将Azure WebJob和App部署到同一个App Service?

时间:2018-04-26 14:36:21

标签: azure azure-devops azure-webjobs azure-web-app-service azure-pipelines-release-pipeline

我有一个Visual Studio 2017解决方案,包含一个ASP.NET Web应用程序项目(称为UI)和一个Azure WebJob项目(称为WebJobs)。我已将两者都配置为从Visual Studio(右键单击,发布)部署到Azure到同一个App Service。该解决方案还配置为每当我推送到VSTS时构建。

我想设置VSTS以在成功构建时同时部署这两个项目,但我遇到了问题。

我的理解是,要实现这一点,我需要使用"部署Azure应用服务"创建一个与我的构建定义链接的发布定义。任务添加到管道中。我试过这个并得到一个错误,因为在artifacts文件夹中找到了多个.zip文件,它建议我使过滤器更具体,所以我更改了"包或文件夹"从$(System.DefaultWorkingDirectory)/**/*.zip$(System.DefaultWorkingDirectory)/**/UI.zip的选项。这解决了错误,但现在显然它只是部署我的应用程序(UI)。

我的下一步是尝试为WebJob项目创建一个单独的Environment,并指定$(System.DefaultWorkingDirectory)/**/WebJobs.zip作为Package。现在两个环境都成功了#34;部署,但它打破了我的应用程序,我很确定它已经将WebJob部署在应用程序的顶部(我不知道如何确认这一信念......)。

我注意到当您向发布定义添加环境并选择模板时,在" Azure App Service Deployment"它说:"将您的应用程序部署到Azure App Services。从Windows应用程序,Linux,容器,功能应用程序或 Web作业"中选择Web App但是当选择此模板时,WebJob并未列在"应用类型"下降!

我在网上找到了一些关于从VSTS部署WebJobs的资源,但它们都已过时,所描述的选项不再与VSTS中的选项相匹配。

解决:

我的问题因以下David Ebbostarian chen的答案而得到解决。

首先,必须右键单击Visual Studio中的 Web App 项目,然后选择添加>现有项目为Azure WebJob 并按照向导进行操作。接下来,您必须确保VSTS部署任务仅通过更新程序包或文件夹路径筛选器找到要部署的一个.zip程序包,以便它只找到 Web App '一个;就我而言,它是$(System.DefaultWorkingDirectory)/**/UI.zip

非常感谢@DavidEbbo和@starianchen的帮助!

2 个答案:

答案 0 :(得分:5)

您只需右键单击Web App并选择:

即可创建WebJob项目
Add / New Azure WebJob project

或者,如果您已在解决方案中安装了WebJobs项目:

Add / Existing WebJob project

一旦这样做,发布Web App会自动发布它所属的WebJob。这一切都发生在一个zip文件中,在VSTS中没有什么特别的事情要做。一旦这样做,不要尝试单独发布WebJob项目。

答案 1 :(得分:2)

通过webjob与Web应用程序相关联,webjob包含在Web应用程序包中,因此您只需将Web应用程序部署到Azure应用程序服务即可。

它会在发布期间生成webjob的包(这就是为什么有两个zip文件),但您只需要在Azure App Service部署任务中指定Web应用程序包。 (使用Web Deploy选项检查发布)

enter image description here

相关问题