0

我试图弄清楚如何将单页应用程序从 appveyor 持续部署到 azure 网站。我有点困惑,因为我无法直接访问 azure,所以我试图在联系管理员之前找出尽可能多的细节,但是 appveyor/azure 文档给我留下了一些问题。

我的目标:

  1. 在构建后部署静态站点,或在成功构建后触发 azure 进行部署。该应用程序是用 typescript 编写的,带有 angular 和一堆其他依赖项,这些依赖项被编译并捆绑到一个静态站点中。
  2. 希望最终用户知道部署正在发生,因此任何增量复制到实时环境都已结束。
  3. 不想签入派生文件或构建到存储库中。

我目前有一个构建系统,它将静态站点捆绑在一个 zip 存档中。所以我的问题是:

  1. 使用 WebDeploy 提供程序能否实现我的目标?如果我将 zip 存档部署为工件,在部署期间是否会有任何停机时间?
  2. 还有另一种方法会更好吗?
  3. 有没有办法通过 azure 自动部署来做到这一点?例如,在成功构建后触发 azure 进行部署。如果是这样,kudu 是否可以在部署过程中处理克隆私有子模块。我看到他们有子模块支持,但我无法从文档中弄清楚私有子模块是否存在任何身份验证问题。

仅供参考,构建系统是 100% NodeJS 驱动的,并且独立于 Windows 生态系统。

4

2 回答 2

0

AppVeyor 将自动部署到 Azure 网站。使用以下网站设置您的部署。

http://www.appveyor.com/docs/deployment/web-deploy

于 2015-10-23T15:28:02.130 回答
0

如果静态文件没有缓存在他们的浏览器中或者他们进行了硬重新加载,用户将会注意到这种变化。无论采用何种实现方法,都建议使用 CDN(内容分发网络)。将 CDN 端点连接到您的应用服务,并使 DNS 指向 CDN 而不是应用服务。CDN 将静态文件提供给最终用户,而不是应用服务本身。CDN 缓存最后部署的文件并继续为最终用户提供服务,直到您清除它们。因此,您可以继续部署到您的应用服务,并且最终用户根本不会受到您的部署的影响,因为他们通过 CDN 而不是应用服务访问您的站点。一旦你有一个稳定的部署,你可以清除你的 CDN,最新的代码将从你的应用服务再次缓存到 CDN。

要回答有关部署代码的问题,无论您使用哪种 CI/CD 系统,从 azure CLI 进行 FTP 部署都可以是其中一种方法。点击这里了解详情。但是,当您部署到应用服务时,WebDeploy 是最标准的方法。

于 2019-06-22T18:03:50.573 回答