将两个VSTS存储库部署到一个Azure Web应用程序

时间:2017-07-12 16:12:42

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

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

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

  1. 请求API服务器处理master的所有请求(这意味着,我仍然希望明确指出,服务器可以要求浏览器设置网络应用可以设置的Cookie)阅读,反之亦然)。
  2. 为API服务器设置类似的持续部署,以便在API存储库中有代码更改时重新部署。
  3. 能够完全单独维护Web应用程序和API存储库。
  4. 这似乎是一个相当标准的场景......是否有可接受的解决方案?我遇到了this,但这似乎是一种非常黑客的方式,更不用说我不知道​​VSTS的Web挂钩的正确URL是什么,并且似乎不是找到有关它的任何信息。此外,该示例并未涵盖如何处理上述第(1)点。

    编辑:补充说明

    请注意,this question上接受的答案并非我所寻找的。它描述了如何在部署时从第二个存储库获取,而不是如何使第二个存储库触发部署,或者如何处理第二个存储库是其自己的服务器的事实。此外,它引入了两个存储库之间的依赖关系,因为foo.azurewebsites.net/api可能在第一个存储库中受源代码控制。

    编辑:虚拟目录

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

1 个答案:

答案 0 :(得分:2)

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

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

修改

抱歉没有更清楚。 AzureRmWebAppDeployment任务具有虚拟应用程序名称的参数。您只需在API项目(/ api)和主项目的部署管道中设置它(将其留空)