我正试图弄清楚如何将appveyor的单页应用程序连续部署到azure网站。我有点为难,因为我没有直接访问azure的权限,所以我试图在联系管理员之前弄清楚很多细节,但是appveyor/azure文档给我留下了一些问题。
我的目标:
在构建静态站点后进行部署,或者在成功构建后触发azure进行部署。这个应用程序是用typescript编写的,带有angular和一堆其他依赖项,这些依赖项被编译并绑定到一个静态站点中。
我不想让最终用户知道正在进行部署,因此任何到实时环境的增量复制都是无效的。
我不想签入派生文件或生成到repo中。
我目前有一个构建系统,它将静态站点绑定到zip存档中。所以我的问题是:
使用webdeploy提供程序能满足我的目标吗?如果我将zip存档作为工件进行部署,部署期间会有停机时间吗?
有没有其他更好的方法?
有没有一种方法可以通过azure自动化部署来实现这一点?例如,在成功构建后触发azure进行部署。如果是这样,kudu能否在部署过程中处理克隆私有子模块的问题。我看到他们有子模块支持,但我无法从文档中找出是否有任何私人子模块的身份验证问题。
仅供参考,构建系统是100%nodejs驱动的,独立于windows生态系统。
2条答案
按热度按时间d7v8vwbk1#
appveyor将自动部署到azure网站。使用下面的网站设置部署。
http://www.appveyor.com/docs/deployment/web-deploy
k75qkfdt2#
如果静态文件没有缓存在浏览器中,或者进行了硬重新加载,用户就会注意到这一变化。不管实现方法如何,建议使用cdn(content delivery network)。将cdn端点连接到应用程序服务,并使dns指向cdn而不是应用程序服务。cdn将把静态文件提供给最终用户,而不是应用程序服务本身。cdn缓存最后部署的文件并继续为最终用户提供服务,直到您清除它们。因此,您可以继续部署到您的应用程序服务,最终用户根本不会受到您的部署的影响,因为他们是通过cdn而不是应用程序服务访问您的站点。一旦你有了一个稳定的部署,你可以清除你的cdn和最新的代码将缓存到cdn再次从你的应用程序服务。
为了回答您关于部署代码的问题,不管您使用的是什么ci/cd系统,从azure cli进行ftp部署都可以是一种方法。单击此处了解详细信息。但是,当您部署到应用程序服务时,webdeploy是最标准的方法。