我们正在使用Azure来托管我们的网站。我们为每个提交和分支设置了一个自定义挂钩的Git,因此我们可以看到特定提交的快照(或给定分支的最新版本):
目前我们正在通过Apache VM管理我们的登台环境,因为vhost使它变得简单 - 我们只是将给定提交(或分支)的代码转储到适当的文件夹中。对于上述内容:
可以在Azure网站(现在是Web Apps)中完成吗?我们如何创建一些动态规则,以便IIS将“commit-1234”映射到文件夹/ webroot / commit-1234 /并将其用作相对路径的根(例如,服务器端包含)?
答案 0 :(得分:1)
我可以想到实时测试部署的两个可靠选项:部署插槽&虚拟应用程序
<强> Deployment Slots 强>
您可以为您的站点创建一个部署插槽,允许一些很酷的功能,如AB测试(一些少量的流量将进入该插槽)。由于您按应用程序服务而不是每个Web应用程序付费,因此您不会收取任何额外费用,然后您拥有干净的环境(例如,如果其中一项更改进行了数据库升级,您可以使用其他模式没有任何愚蠢的黑客)。然后,您的网址名称为{{sitename}}-{{commit}}.azurewebsites.net
。您可以手动设置每个插槽或运行脚本。获得WebJob running listening for your GitHub Hooks和then provisioning the staging slot并不会太困难。您将要阅读Kudu(Web App的开源部署引擎)以及Deployment Hooks的工作方式。
<强> Virtual Applications 强>
您可以部署虚拟应用程序并使用IIS映射它们,类似于您使用Apache的方式。您可以在Tom's Blog结帐,其中包含实际设置虚拟应用程序的详细信息。我认为这最终会变得更加困难,仍然需要手动步骤。我只提到它,因为结果非常接近你所说的。您可以将每个虚拟目录映射到特定的URI(例如/{{commit}}/
)。
仅供参考 - 我是Azure Web Apps团队的PM。我认为第一个例子非常有趣。我会帮忙把它变成博客文章。
答案 1 :(得分:0)
为每个Azure网站/应用程序端点配置Git集成时,您可以选择分支。
从文档中:“在Continous Deployment刀片中,选择要部署的组织,项目和分支。完成后,单击”确定“。
来源:https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/
希望有所帮助! :)