nodejs应用程序部署到Azure的最佳实践

时间:2018-04-16 15:12:54

标签: javascript node.js azure deployment azure-functions

最近我开始研究Nodejs项目,我们正在使用Azure功能。我很高兴将应用程序部署到Azure。

首先,我尝试在部署过程中找到无服务器插件来安装依赖包。找不到一个简单的方法来做到这一点。

经过一些谷歌搜索并阅读此documentation后,我发现最佳做法是在构建步骤中安装软件包,并部署已生成的node_modules。

  

将node_modules目录部署为应用程序的一部分会增加部署的大小。 ...但是,它确实保证了生产中使用的模块版本与开发中使用的模块相同。

所以我尝试遵循这一点,并使用依赖项部署小型应用程序:

"dependencies": {
  "azure-function-express": "^1.3.0",
  "body-parser": "^1.18.2",
  "express": "^4.16.2",
  "cookie-parser": "^1.4.3",
  "cors": "^2.8.4"
}

要部署的Zip文件大约是709 KB。它成功部署。但是当我再添加一个包(mongoose)

"dependencies": {
  "azure-function-express": "^1.3.0",
  "body-parser": "^1.18.2",
  "express": "^4.16.2",
  "cookie-parser": "^1.4.3",
  "cors": "^2.8.4",
  "mongoose": "^5.0.11"
}

zip的大小变为2.83 mb,部署挂起,显示消息“Uploading function:...”,功能未部署,没有日志。

它挂起......我不确定究竟是什么原因,但是即使只有很少的软件包,它也不起作用,如果我添加更多的大包装怎么办?

我恳请您建议如何解决此类问题,以及哪种方法最适合您构建和部署Nodejs Azure功能。谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案是使用webpack将许多软件包捆绑到一个文件中。然后可以轻松,快速地进行部署。如果您使用serverless框架,则有一个软件包serverless-webpack可以完成这项工作。