Node.js Azure WebJob:如何使用持续交付从Visual Studio Team Services进行部署

问题描述:

我们在Azure中有一个现有的Web应用程序,我们正在部署Node.js Webjob。Node.js Azure WebJob:如何使用持续交付从Visual Studio Team Services进行部署

我们目前在构建(CI)过程中部署webjob,方法是将run.js和node_modules文件夹复制到Web应用程序的app_data/jobs/continuous目录中,然后根据我找到的唯一教程,然后构建和部署WebApp本身使用CD。

虽然这可行,但看起来有点冒险,现在由于node_modules目录中的文件数量庞大,现在需要很长时间才能部署Web应用程序。

是否有更自动的方法,即将node.js webjob部署到现有的web应用程序?我能找到这种情况下重新各类教程:asp.net的项目,但只

更新

我使用的指令之一的node.js webjobs,这是上面第2段所述)在Amit的博客:http://blog.amitapple.com/post/74215124623/deploy-azure-webjobs/#.VyC06DArKHs

+0

您的WebApp文件和WebJobs文件都在同一个存储库中吗? –

+0

是的,谢谢。 – Gustyn

一般情况下,如果你使用Git来部署ASP.NET应用程序天青Web应用程序服务,您可以利用NPM管理文件package.json通过部署任务安装节点模块。

你可以尝试以下步骤:

  1. 在你的根目录路径添加package.json文件,内容包括你所需的依赖。 https://docs.npmjs.com/files/package.json#dependencies
  2. 如果您在Visual Studio中有该项目,可以右键单击wwwroot,然后单击Add =>“新建项目”,然后在Client-side选项卡下选择要添加的NPM Configuration Fileenter image description hereenter image description here 创建并配置npm配置文件后,Azure部署任务将自动安装依赖关系。
  3. 在您的仓库或项目的根目录中创建webjob脚本和文件夹。例如。 app_data\jobs\continuous\testwebjob\run.js。你可以直接在require这个模块,它会在根目录下找到node_modules这个模块。

毕竟,你的项目的根目录下将有类似的结构: enter image description here

任何进一步的问题,请随时让我知道。

+0

感谢您的快速响应。不幸的是,我们没有使用Asp.NET5(基于您对wwwroot的使用,我假设您在这种情况下),直到.NET Core团队以更稳定的状态获取该项目它。如果你不是在谈论Asp.NET5,那么在传统的Asp.NET中如何使用wwwroot概念呢? – Gustyn

+0

我们在我们的CI过程中已经使用了npm,然后在使用VSO构建定义中的一系列任务构建和发布之前,将该过程复制到web应用程序中。然后我们使用VSO发布机制来部署该网站。 CD流程的发布部分所花费的时间比预期的要长。我正在更新我的问题,并提供了一个链接到我曾经设置过的博客。 – Gustyn