首页 > 解决方案 > 使用 azure devops 管道将控制台 webjob 应用程序部署到包含 webapi 的 azure App 服务

问题描述

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

我正在尝试使用 Azure DevOps 构建和发布管道在 Azure 中将 Web Api 与 webjob 一起部署到 2 个 Web 应用程序服务中(例如:WebApi1 + Web job1 到 App service1 和 WebApi2 + Web job2 到 App service2)。

我可以从 Azure 门户手动将 webjobs 添加到应用程序服务中,它工作正常。但我想使用 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 文件夹中。

在此处输入图像描述

我的构建步骤:

在此处输入图像描述 在此处输入图像描述

我的发布步骤:

在此处输入图像描述

我不确定我做错了什么。有没有办法在不覆盖实际 webapi 代码的情况下将 webjobs 文件复制到同一个应用程序服务中?

标签: azure.net-coreazure-devopsazure-pipelines

解决方案


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

我尝试了以下方法,它对我有用:

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

在此处输入图像描述

  1. 在 DevOps 中配置您的构建管道,例如: 在此处输入图像描述

  2. 配置您的发布管道,如: 在此处输入图像描述

配置任务:

在此处输入图像描述


推荐阅读