【问题标题】:Deploy two VSTS repositories to one Azure web app将两个 VSTS 存储库部署到一个 Azure Web 应用程序
【发布时间】:2017-07-13 00:54:55
【问题描述】:

假设我有一个位于 foo.azurewebsites.net 的 Azure 应用服务 Web 应用。 Web 应用程序的代码(一个简单的 Node.js 服务器和 React 前端)托管在 VSTS 上,并且每次将代码推送到存储库的 master 分支时,都会配置一个自定义部署脚本来构建和部署 Web 应用程序。换句话说,标准的网络应用配置。

现在,我所有的 API 代码(只是一个 Node.js 服务器)都在 VSTS 上的另一个存储库中。我希望能够做到以下几点:

  1. 让所有对foo.azurewebsites.net/api 的请求都由 API 服务器处理(这意味着,我仍然想明确说明,服务器可以要求浏览器设置 Web 应用程序可以读取的 cookie,反之亦然)。
  2. 为 API 服务器设置类似的持续部署,以便在 API 存储库中发生代码更改时重新部署它。
  3. 能够完全独立地维护 Web 应用和 API 存储库。

这似乎是一个相当标准的场景……有公认的解决方案吗?我遇到了this,但这似乎是一种非常老套的方法,更不用说我不知道​​ VSTS 的网络挂钩的正确 URL 是什么,而且似乎找不到任何关于它。此外,该示例未涵盖如何处理上述第 (1) 点。

编辑:补充说明

请注意,this question 上接受的答案不是我想要的。它描述了如何在部署时从第二个存储库中提取,但没有描述如何让第二个存储库触发部署,或者如何处理第二个存储库是它自己的服务器这一事实。此外,它引入了两个存储库之间的依赖关系,因为deploy.cmd 可能在第一个存储库中处于源代码控制之下。

编辑:虚拟目录

感谢@CtrlDot 指出虚拟目录是解决 (1) 的方法。仍在寻求关于 (2) 和 (3) 的指导。

【问题讨论】:

    标签: node.js git azure azure-web-app-service


    【解决方案1】:

    我认为您所指的概念称为Virtual Directories

    我不确定您要部署哪个 VSTS 任务,但根据提供的文章,您应该将其配置为仅针对您要部署到的虚拟目录。

    编辑

    对不起,没有更清楚。 AzureRmWebAppDeployment 任务有一个虚拟应用程序名称参数。您只需在 API 项目 (/api) 和主项目的部署管道中设置它(留空)

    【讨论】:

    • 谢谢,看起来虚拟目录是使 (1) 工作的正确方法。但是如何从两个存储库设置持续部署呢?我看到的所有相关问题都与将 API 和 Web 应用程序放在单个 Visual Studio 解决方案中的多个项目中有关。不幸的是,这不是我的选择。
    • 啊,好吧。我没有在 VSTS 端使用自定义构建过程;我刚刚让 Azure 处理源代码控制集成。我会调查的。
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2017-11-06
    • 2017-11-26
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多