通过 Azure DevOps 将多个应用程序部署到同一个 Azure Web 应用程序
Posted
技术标签:
【中文标题】通过 Azure DevOps 将多个应用程序部署到同一个 Azure Web 应用程序【英文标题】:Deploy multiple Application to the same Azure web app viaAzure DevOps 【发布时间】:2021-03-01 20:19:18 【问题描述】:我有两个应用程序,后端和前端,托管在同一个 Azure Web 应用 (os : windows)
。
其实我是通过FTP/S来部署这两个artficats的。
我在前面使用wwwroot folder
,在后端使用wwwroot folder
中的子文件夹
我会使用 Azure Devops 创建一个 Azure Release,以将这两个应用程序部署到我的 Web 应用程序。
我不能为后端和前端使用两个应用服务。
部署的最佳方法是什么?并且可以将 Azure App 服务中的子文件夹目标指定到 Azure 版本中吗?
问候
【问题讨论】:
【参考方案1】:无法使用deployment tasks 在 azure 发布管道中指定要部署到的子文件夹。默认情况下,工件将部署到 wwwroot 文件夹。
但是,您可以在发布管道中使用 copy files task 将后端工件复制到位于前端工件文件夹中的子文件夹中。然后部署前端工件文件夹,该文件夹在其子文件夹中包含后端工件。见下文:
您还可以在azure powershell task 中运行Kudu rest api 以部署到Azure Web 应用服务。
您可以先使用command api 在 wwwroot 中创建一个子文件夹。
"command" = 'md subfolder',
"dir"='D:\home\site\wwwroot'
然后您可以使用 zip deploy api 将后端工件部署到子文件夹
$apiUrl = "https://sitename.scm.azurewebsites.net/api/zip/site/wwwroot/subfolder"
请查看this blog 了解更多信息。参见this thread 例如使用 azure powershell 任务调用 kudu rest api
【讨论】:
部署前端时,后端的文件夹会被删除,是吗? @Andrelemarchand 我测试并发现子文件夹是否是由 kudu api 创建的。将前端部署到wwwroot时不会删除子文件夹。 使用 azure devops 部署时? @Andrelemarchand 是的 wwwroot文件夹有两个artficats,如果我用kudu api将后端部署到wwwroot的子文件夹,如果我部署前端,这个文件夹不会被删除?以上是关于通过 Azure DevOps 将多个应用程序部署到同一个 Azure Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 azure devops YAML 管道中将单个代理用于多个作业/阶段
Azure DevOps - 将 Web 应用程序部署到 IIS
使用 Azure DevOps 部署具有不同名称的 Service Fabric 服务
通过 Terraform Helm 提供程序和 Azure DevOps 部署 helm 图表,同时从 ACR 获取 helm 图表